Cómo eliminar el retorno de carro de una cadena al pegar contenido en un archivo de Excel

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

  •  06-07-2019
  •  | 
  •  

Pregunta

Tengo un problema al pegar mi contenido (o texto) generado por el código Java en Excel. El problema es que mi código Java genera una cadena con varias líneas, es decir, con saltos de línea ( \ n ) incluidos. Cuando intento copiar este contenido y pegarlo en un archivo de Excel, obtengo un texto de varias líneas con un símbolo de caja cuadrada. Llegué a saber que Windows usa \ r \ n para saltos de línea y no solo \ n . Intenté reemplazar mi \ n con \ r \ n y pegar el texto generado, pero obtengo los mismos cuadros cuadrados en mi archivo de Excel. Aquí está mi código de muestra:

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

He utilizado el " " para envolver el texto. Cuando intenté pegar tmpstring en Excel, obtuve el cuadro cuadrado. ¿Cómo puedo eliminar las casillas con varias líneas en mi celda ?

¿Fue útil?

Solución

¿Quieres el retorno de carro / nueva línea, o no? Su título dice que no, su código está agregando explícitamente retornos de carro cuando la cadena tiene una nueva línea. Si desea deshacerse de ambos, use String.replaceAll (), que toma una expresión regular:

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

Este ejemplo encuentra cualquier aparición de los caracteres y los elimina. Probablemente desee buscar la secuencia de caracteres y reemplazarlos con un espacio, pero lo dejaré en sus manos: consulte el documento para java.util.regex.Pattern .

Y sospecho que la " casilla " es algún otro carácter, no una devolución o nueva línea.

Otros consejos

¿Por qué no copia y pega como de costumbre, luego hace una búsqueda y reemplaza en Excel?

Si es de ayuda, corrí esta línea de código (C #)

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

y luego Ctrl-V en Excel y 3 celdas se llenaron con A1 obtuvieron 1, A2 obtuvieron 2 y A3 obtuvieron 3. Esto significa que \ n y \ r \ n se manejan como lo espera Excel. Las cadenas Java que contienen \ ny \ r \ n también deberían funcionar. Esto me lleva a creer que algo está bien con la configuración de la celda de Excel. Compruebe si las celdas están formateadas como texto.

Aparte de eso, no tengo idea, lo siento.

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

Debido a que el cursor se mueve al inicio de la línea actual, entonces " He " de Hello se sustituye por " Hola " ;.

Prueba esto =)

String s1 = "this\r\nis a test";
String s2 = s1.replaceAll("(\\r|\\n)", "");
System.out.println(s2);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top