Comment supprimer le retour chariot de la chaîne lors du collage de contenu dans un fichier Excel

StackOverflow https://stackoverflow.com/questions/1612808

  •  06-07-2019
  •  | 
  •  

Question

J'ai un problème lors du collage du contenu (ou du texte) généré par le code Java dans Excel. Le problème est que mon code Java génère une chaîne avec plusieurs lignes, c'est-à-dire avec des sauts de ligne ( \ n ) inclus. Lorsque j'essaie de copier ce contenu et de le coller dans un fichier Excel, je reçois un texte multiligne avec un symbole de case carrée. J'ai appris que Windows utilise \ r \ n pour les sauts de ligne et pas seulement \ n . J'ai essayé de remplacer mon \ n par \ r \ n et de coller le texte généré, mais je reçois les mêmes carrés dans mon fichier Excel. Voici mon exemple de code:

      String   myString = "a1\nb1";
      String   tmpString =myString.replace("\n","\r\n");
      System.out.println( "Original = " +"\""+myString+"\"");
      System.out.println( "Result   = " +"\""+tmpString+"\"");

J'ai utilisé le " "" pour envelopper le texte. Lorsque j'ai essayé de coller tmpstring dans Excel, j'ai reçu la boîte carrée. Comment puis-je supprimer les boîtes contenant plusieurs lignes dans ma cellule ?

Était-ce utile?

La solution

Voulez-vous le retour chariot / nouvelle ligne ou pas? Votre titre dit que vous ne le faites pas, votre code ajoute explicitement les retours à la ligne lorsque la chaîne a une nouvelle ligne. Si vous souhaitez vous débarrasser des deux, utilisez String.replaceAll (), qui prend une expression régulière:

public static void main(String[] argv)
throws Exception
{
    String s1 = "this\r\nis a test";
    String s2 = s1.replaceAll("[\n\r]", "");
    System.out.println(s2);
} 

Cet exemple recherche toutes les occurrences de caractères et les supprime. Vous voudrez probablement rechercher la séquence de caractères et la remplacer par un espace, mais je vous laisse le soin de la regarder: consultez la documentation pour java.util.regex.Pattern .

Et je soupçonne que la "boîte" est un autre caractère, pas un retour ou une nouvelle ligne.

Autres conseils

Pourquoi ne pas copier et coller comme d'habitude, puis effectuer une recherche et un remplacement chez Excel?

Si vous avez besoin d'aide, j'ai exécuté cette ligne de code (C #)

Clipboard.SetText("1\n2\r\n3");

puis Ctrl-V dans Excel et 3 cellules ont été remplies avec A1 pour 1, A2 pour 2 et A3 pour 3. Cela signifie que \ n et \ r \ n sont gérés comme prévu par Excel. Les chaînes Java contenant \ n et \ r \ n devraient également fonctionner. Cela m'amène à croire que quelque chose ne va pas avec les paramètres de cellule Excel. Vérifiez si les cellules sont formatées en texte.

Autre que cela, aucune idée, désolé.

class Test {
    public static void main(String args[])
    System.out.print("Hello\rHi");
}

En raison de \ r, le curseur se déplace au début de la ligne en cours, donc "He". de Bonjour est remplacé par "Bonjour".

Essayez ceci =)

String s1 = "this\r\nis a test";
String s2 = s1.replaceAll("(\\r|\\n)", "");
System.out.println(s2);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top