Estoy generando un archivo CSV (delimitado por comas en lugar de pestañas). Mis usuarios probablemente abrirán el archivo CSV en Excel haciendo doble clic en él. Mis datos pueden contener comas y marcas de habla, por lo que los escapo de la siguiente manera.
Reference, Title, Description
1, "My little title", "My description, which may contain ""speech marks"" and commas."
2, "My other little title", "My other description, which may also contain ""speech marks"" and commas."
Hasta donde yo sé, esa ha sido siempre la forma de hacerlo. Aquí está mi asombro: cuando abro este archivo en Excel 2010, no se respeta mi escape. Aparecen marcas de habla en la hoja y la coma genera nuevas columnas.
java
excel
csv
special-characters
centralscru
fuente
fuente
A continuación se muestran las reglas si cree que es aleatorio. Se puede crear una función de utilidad sobre la base de estas reglas.
Si el valor contiene una coma, una nueva línea o comillas dobles, el valor de la cadena debe devolverse entre comillas dobles.
Cualquier carácter de comillas dobles en el valor debe escaparse con otra comilla doble.
Si el valor no contiene una coma, una nueva línea o comillas dobles, entonces el valor de Cadena debe devolverse sin cambios.
fuente
De acuerdo con las instrucciones de Yashu, escribí la siguiente función (es código PL / SQL, pero debería ser fácilmente adaptable a cualquier otro idioma).
fuente
Las comillas simples también funcionan bien, incluso sin escapar de las comillas dobles, al menos en Excel 2016:
Excel lo pondrá en 5 columnas (si elige la comilla simple como "Calificador de texto" en el asistente "Texto a columnas")
fuente
Incluso después de las comillas dobles, tuve este problema durante unos días.
Se reemplazó el delimitador de tubería con coma, luego todo funcionó bien.
fuente