Wie der Wagenrücklauf aus der Zeichenfolge zu entfernen, während Inhalt an Excel-Datei einfügen

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

  •  06-07-2019
  •  | 
  •  

Frage

Ich habe ein Problem, während meine Inhalte einfügen (oder Text), die von Java-Code in Excel. Das Problem ist, dass mein Java-Code einen String mit mehreren Leitungen erzeugt, das heißt mit Zeilenumbrüchen (\n) enthielt. Wenn ich versuche, diesen Inhalt zu kopieren und in eine Excel-Datei einfügen, ich bin ein mehrzeiliges Text mit einem quadratischen Feld Symbol bekommen. Ich kam zu wissen, dass Windows \r\n für Zeilenumbrüche verwendet und nicht nur \n. Ich versuchte, meinen \n mit \r\n und fügen Sie den generierten Text zu ersetzen, aber ich bin die gleichen quadratischen Felder in meiner Excel-Datei zu bekommen. Hier ist mein Beispielcode:

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

Ich habe den “„ verwendet, um den Text zu wickeln. Als ich versuchte, einfügen tmpstring in Excel, bekam ich den viereckigen Kasten. Wie kann ich die Boxen mit mehr Zeilen in meiner Zelle

entfernen
War es hilfreich?

Lösung

Haben Sie den Wagenrücklauf / Newline wollen, oder nicht? Ihr Titel sagt, dass Sie nicht, Ihr Code explizit fügt Zeilenumbrüche, wenn die Zeichenfolge eine neue Zeile hat. Wenn Sie beide loswerden möchten, verwenden Sie String.replaceAll (), die einen regulären Ausdruck kommt:

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);
} 

In diesem Beispiel wird jedes Vorkommen der Zeichen, und löscht sie. Sie wollen wahrscheinlich die Folge von Zeichen suchen und mit einem Leerzeichen ersetzen, aber ich werde das für Sie überlassen: Blick auf die doc für java.util.regex.Pattern

.

Und ich vermute, dass die „Box“ ist ein anderes Zeichen, keine Rückkehr oder Newline.

Andere Tipps

Warum gehst du nicht kopieren und wie gewohnt einfügen, dann eine Suche und bei Excel ersetzen?

Wenn es keine Hilfe ist, lief ich diese Zeile Code (C #)

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

und dann Ctrl-V in Excel und 3-Zellen wurden gefüllt mit A1 erhielt 1, 2 und bekam A2 A3 erhielt 3. Dies bedeutet, dass \ n und \ r \ n behandelt und werden von Excel erwartet. Java Strings \ n und \ r \ n sollte auch enthalten arbeiten. Dies führt mich etwas herauf mit den Excel-Zelle Einstellungen zu glauben. Überprüfen Sie, ob die Zellen als Text formatiert sind.

Other than that, keine Ahnung, sorry.

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

Durch \ r Cursor bewegt sich von der aktuellen Zeile zu beginnen, so „Er“ von Hallo ersetzt durch „Hallo“.

Versuchen Sie, diese =)

String s1 = "this\r\nis a test";
String s2 = s1.replaceAll("(\\r|\\n)", "");
System.out.println(s2);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top