¿Cómo consigo que Excel importe mi archivo CSV ?
Archivo
Tengo un archivo que dice ser CSV. Contiene 10 campos, todos los cuales están rodeados por comillas dobles (sí, incluso las fechas y los números). 2 o 3 de estos campos contienen comas . Pero los datos en estos campos también están rodeados de comillas.
Problema
Cuando trato de abrir este archivo, Excel ignora por completo las comillas y asume que son parte de los datos.
Por lo tanto, divide los campos que contienen comas en varias columnas.
Esto es malo, al menos para mí.
Datos de ejemplo
"20051", "", "30 de septiembre de 2009 02:53:23", "SOMETEXT", "", "5000", "2000000", "2008 - 99999 - -99999, 2008 - unk - unk", "191 - SOMETEXT - SOMETEXT, 192 - SOMETEXT - SOMETEXT, 193 - SOMETEXT - SOMETEXT, 194 - SOMETEXT - SOMETEXT, 195 - SOMETEXT - SOMETEXT, 196 - SOMETEXT - SOMETEXT "," 45 - SOMETEXT, SOMETEXT - SOMETEXT, - SOMETEXT - SOMETEXT, 141 - SOMETEXT - SOMETEXT " "20052", "SOMETEXT", "08 de septiembre de 2009 07:56:50", "SOMETEXT", "", "50000", "5000000", "2007 - 99999 - 99999", "146 - SOMETEXT - SOMETEXT, 145 - SOMETEXT - SOMETEXT, 147 - SOMETEXT - SOMETEXT, 148 - SOMETEXT - SOMETEXT "," 103 - SOMETEXT - SOMETEXT, 1131 - SOMETEXT - SOMETEXT "
Que he probado
He utilizado la función de importación para especificar delimitadores y demás, pero esto no parece ayudar.
He intentado cambiar "Delimitador de texto" de una comilla doble a "{none}" y viceversa. Esto parece afectar solo a la primera columna. Esto sería razonable si fuera posible hacer clic en las otras columnas y aplicar esta configuración a cada una. Pero este no es el caso, y parece que está destinado a funcionar en columnas.
¿Qué más puedo probar?
fuente
Respuestas:
Acabo de probar una prueba rápida que replica tu problema.
Creé un CSV de 1 línea en Word (que usa comillas inteligentes) como test.csv "123", "4,5,6" y se abrió en Excel como usted describió.
Intente reemplazar "y" con "
Después de jugar con su muestra, noto que a Excel no le gustan los espacios entre campos
por ejemplo, en lugar de
usted quiere
un reemplazo decente de expresión regular debería ser capaz de manejarlo con
(caracteres de tubería solo para señales visuales)
O simplemente modifique el código .Net si tiene acceso a él ;-)
Además, como señaló Arjan , es posible que también deba convertir el archivo de UTF-8 a ANSI para evitar que la celda A1 contenga la lista de materiales y sus qoutes circundantes.
Me he encontrado con el Catch 22 de CSV codificado por ANSI que no maneja caracteres internacionales y que CSV codificado por UTF no está siendo manejado adecuadamente por Excel; y no encontré una solución mientras mantenía el CSV. Si se requiere compatibilidad con caracteres internacionales, los formatos XML (o XLS nativo) parecen ser el único camino a seguir, a costa de la simplicidad.
fuente
Este problema me ha estado atormentando durante varios años. Acabo de descubrir la solución y se menciona en las respuestas anteriores, pero no se explica explícitamente.
¡Es el espacio después de la coma!
Esto no importa a Excel;
Mientras
¡Trabajos!
fuente
También puedes probar CSVEd, que es gratis.
fuente
Si no está usando accidentalmente comillas inteligentes como sugiere Lumbarius , y suponiendo que está en Windows: eso podría deberse a su configuración regional. Al hacer doble clic o usar Archivo »Abrir, Excel no le solicita ningún detalle, sino que simplemente utiliza esta configuración.
Aún así, la invocación manual de la función de importación (como lo hizo) debería haber funcionado, por lo que dudo que cambiar la configuración regional ayude ...
fuente
¿Ha verificado la codificación de caracteres de su archivo? Intente configurar la codificación de caracteres en UTF-8.
Puede usar notepad2 para cambiar la codificación de caracteres.
fuente
Simplemente agregue las respuestas aquí: concéntrese en los ESPACIOS después de COMMAS en sus archivos CSV. A Excel no le gustan estos si ha citado campos en sus datos.
Me gusta de Excel (4 columnas de datos):
Pero no le gusta (3 columnas de datos):
Sí le gusta (3 columnas de datos):
fuente
Me encontré con este problema hoy y también encontré una solución que funcionó para mí.
Mi entorno / contexto: tengo una página web con algunas preguntas (de formulario) que contienen comillas y comillas dobles. Tanto las preguntas como las respuestas se extraen de la base de datos y se escriben en un archivo de Excel con fines informativos.
Tuve el mismo problema descrito anteriormente: las preguntas que incluían comillas dobles y comas se dividían en varias columnas en Excel.
Para mis propósitos, usar dos comillas simples en lugar de una comilla doble fue el truco.
-> en el sitio web, dos comillas simples parecen una comilla doble para los visitantes del sitio
-> En el archivo de Excel, nuevamente, dos comillas simples parecen una comilla doble para los usuarios que ven los datos del informe
Me doy cuenta de que esta solución no funcionará para todos, pero espero que ayude a alguien.
fuente
Pude hacer esto usando:
que da cuatro columnas:
fuente
Otra forma de hacerlo:
De esta manera, puede establecer la codificación correcta como UTF-8, que muchas (¿todas?) Versiones de Excel no pueden manejar correctamente sin BOM y no tiene que preocuparse por una expresión regular que pueda reemplazar algo de texto dentro del campo y no lo notas
fuente