Come rimuovere il ritorno a capo dalla stringa mentre si incolla il contenuto nel file Excel

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

  •  06-07-2019
  •  | 
  •  

Domanda

Ho un problema durante l'incollaggio dei miei contenuti (o testo) generati dal codice Java in Excel. Il problema è che il mio codice Java genera una stringa con più righe, ovvero con interruzioni di riga ( \ n ) incluse. Quando provo a copiare questo contenuto e incollarlo in un file Excel, ricevo un testo su più righe con un simbolo di casella quadrata. Sono venuto a sapere che Windows utilizza \ r \ n per le interruzioni di riga e non solo \ n . Ho provato a sostituire il mio \ n con \ r \ n e incollare il testo generato, ma sto ottenendo le stesse caselle quadrate nel mio file Excel. Ecco il mio codice di esempio:

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

Ho usato il " " per avvolgere il testo. Quando ho provato a incollare tmpstring in Excel, ho ottenuto la scatola quadrata. Come posso rimuovere le caselle con più righe nella mia cella ?

È stato utile?

Soluzione

Vuoi il ritorno a capo / newline o no? Il tuo titolo dice che non lo fai, il tuo codice aggiunge esplicitamente i ritorni a capo quando la stringa ha una nuova riga. Se vuoi sbarazzarti di entrambi, usa String.replaceAll (), che accetta una regex:

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 questo esempio viene trovata qualsiasi occorrenza dei personaggi e li elimina. Probabilmente vuoi cercare la sequenza di caratteri e sostituirla con uno spazio, ma lo lascerò a te: guarda il documento per java.util.regex.Pattern .

E sospetto che la casella " " è un altro personaggio, non un ritorno o una nuova riga.

Altri suggerimenti

Perché non copiare e incollare come al solito, quindi fare una ricerca e sostituire in Excel?

Se è di aiuto, ho eseguito questa riga di codice (C #)

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

e poi Ctrl-V in Excel e 3 celle sono state riempite con A1 ottenuto 1, A2 ottenuto 2 e A3 ottenuto 3. Ciò significa che \ n e \ r \ n sono gestiti come previsto da Excel. Anche le stringhe Java contenenti \ n e \ r \ n dovrebbero funzionare. Questo mi porta a credere che qualcosa sia successo con le impostazioni della cella di Excel. Controlla se le celle sono formattate come testo.

A parte questo, non ho idea, scusa.

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

A causa del cursore r si sposta all'inizio della riga corrente, quindi "He" di Hello è sostituito da " Hi " ;.

Prova questo =)

String s1 = "this\r\nis a test";
String s2 = s1.replaceAll("(\\r|\\n)", "");
System.out.println(s2);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top