Cómo abrir archivos CSV delimitados por punto y coma en la versión estadounidense de Excel

95

Cuando hago doble clic en un archivo .csv, se abre en Excel. Los archivos csv tienen columnas delimitadas con punto y coma (no comas, sino también un formato válido).

Usando una configuración alemana de Windows / Excel, el archivo abierto se muestra correctamente, las columnas se separan donde existían los punto y coma en el archivo csv.

Pero cuando hago lo mismo en una configuración de Windows / Excel en inglés (EE. UU.), Solo se importa una columna, que muestra todos los datos, incluidos los punto y coma en la primera columna.
(No tengo una configuración en inglés disponible para las pruebas, los usuarios han informado el comportamiento)

Traté de cambiar el valor del separador de lista en la configuración regional de Windows, pero eso no cambió nada.

¿Qué puedo hacer para poder hacer doble clic y abrir esos archivos CSV en una configuración en inglés?

EDITAR:
Parece ser la mejor solución para no confiar en los archivos CSV en este caso. Esperaba que haya algún formato para los archivos CSV que permita utilizarlos internacionalmente.
Parece que la mejor solución es cambiar a crear archivos XLS.

Holgerwa
fuente
1
Podría recomendar a sus usuarios que utilicen LibreOffice Calc : maneja bien los CSV con separadores arbitrarios.
naught101

Respuestas:

1

¿Se distribuyen esos archivos? descargado? ¿Generado localmente?

Creo que la forma única de resolver su problema sin acceso a la PC del usuario y sin que tenga que hacer algo diferente de "hacer doble clic" en el archivo es convertir los archivos a .xls antes de distribuirlos o descargarlos o generarlos un .xls (u otro formato que funcione) en lugar de un archivo .csv. Puede hacerlo con un script o manualmente con un Excel en funcionamiento, dependiendo de la cantidad de archivos y la forma en que se generan.

Laurent
fuente
Sí, creo que esa es la mejor manera de crear directamente archivos XLS. Esperaba que haya algún formato para los archivos CSV que los haga utilizables internacionalmente, pero si eso no es posible, los archivos XLS funcionarán sin importar dónde.
Holgerwa
8
¿Cómo es esta la respuesta correcta? Es inútil.
Stevie G
Respuesta terrible: vea la otra respuesta votada.
jmc
203

Agregue esto en la primera línea del archivo CSV:

sep=;

o

sep=,

Esto anulará la configuración del sistema ("carácter separador de lista") y Excel abrirá el archivo correctamente.

atx
fuente
44
+1 hizo esto en Excel 2010 y funcionó perfectamente.
N Reed
8
¿Hay una lista de otras configuraciones similares? Decirle a Excel que use, ya que el separador decimal generalmente va junto con decirle que use; como el separador de columna.
ZweiBlumen
55
Funciona perfectamente para Excel, pero tenga en cuenta que esto puede no ser compatible con otras hojas de cálculo o programas de datos. Puede que solo sea un problema pequeño, simplemente mostrando una primera línea adicional con sep=o sep=;dentro de ella, pero algunos programas o scripts automatizados pueden no esperar la primera línea adicional, lo que da como resultado que los encabezados de columna o la sep=;línea misma se interpreten como datos reales.
Sygmoral el
55
Ten cuidado con esto. Si guarda en Excel: - Eliminará la especificación del separador - Guarde con el separador de configuración regional
Bjinse
1
Puede confirmar fwrite($fileHandle, 'sep=,' . "\r\n");completamente solucionado el problema fputcsven PHP.
h2ooooooo
26

Puede usar el Asistente de importación de texto. Esto no funciona con un doble clic para abrir, pero es lo mejor que se me ocurre y que no implica meterse con la configuración de idioma.

En Excel 2003 goto Data-> Import External Data-> Import Dataen la barra de menú (no puedo decir dónde está en 2007, no tengo eso a mano en este momento). Encuentra y selecciona tu archivo CSV.

Cuando se abre, obtienes el Text Import Wizard, que te permite especificar el delimitador (es) a usar.

DMA57361
fuente
En Outlook 2007, acceda a la pestaña Datos, seleccione su columna y haga clic en el botón Texto a columnas en los conjuntos de Herramientas de datos.
Hondalex
1
Sí, esa es una solución. Desafortunadamente, los usuarios que necesitan ver los datos no están dispuestos a hacerlo. Pueden manejar un "doble clic y abrir", pero no podrán hacer nada más complicado. Hemos tratado de educarlos al menos un poco, pero se niegan.
Holgerwa
1
@Holgerwa: ¿es posible ejecutar los archivos mediante algún tipo de proceso de conversión antes de entregarlos a los usuarios? ¿O necesitan permanecer delimitados por punto y coma? Otros han sugerido esto, pero debería ser bastante fácil intercambiar puntos y comas por comas usando algún tipo de script (aconsejaría que no se busque / reemplace simplemente porque no desea convertir esas comillas internas).
DMA57361
6

Ver este artículo: ¿
Problemas para abrir archivos CSV con Excel? El problema de la coma y el punto y coma en Excel debido a la configuración regional para Europa

Que ofrece 3 soluciones:

  • Cambie la extensión del archivo CSV a TXT (cuando abre un archivo TXT con Excel, se iniciará el asistente de importación de archivos de texto donde puede elegir el delimitador)
  • Reemplace todos "," con ";" en sus archivos CSV
  • Cambiar la configuración regional y de idioma

Como solo ha cambiado el valor del separador de lista en la configuración regional de Windows, observo que el artículo dice que ingrese "." Para Decimal Symboly "," para List Separator.

Si se siente cómodo con VBA, vea:

Abrir archivo CSV delimitado por punto y coma con VBA en Excel 2000
Exportar e importar texto con Excel

harrymc
fuente
Estoy de acuerdo, todas las opciones válidas, pero desafortunadamente, no estoy en una situación normal con los usuarios de estos archivos CSV. .TXT-import no funcionará (vea mi comentario sobre la respuesta de DMA57361), reemplazar los puntos y comas con comas no funcionará debido a problemas con el separador decimal, y cambiar la configuración regional no funcionará porque no tengo acceso a PC que se usan. Los usuarios simplemente harán doble clic en los archivos y, si no obtienen lo que esperan, se quejarán y se negarán a ayudar a resolver el problema.
Holgerwa
@Holgerwa: Si no controlas las PC de los usuarios, entonces no hay nada que puedas hacer. Porque mi otra sugerencia sería cambiar el controlador a la extensión .csv para que sea su propio programa, que corregirá (pero de manera inteligente) los delimitadores y llamará a Excel.
harrymc
@Holgerwa: Tenga en cuenta mi edición anterior con respecto a la configuración regional.
harrymc
3

La mejor manera que he intentado es establecer la configuración regional de su computadora de la siguiente manera:

  • en "Estándar y formatos", elija "Inglés (Estados Unidos)";
  • en "Ubicaciones" elija "Estados Unidos".

Funciona para mí, solo pruébalo.

jaz
fuente
En realidad, el problema del OP es lo contrario. Debe cambiar a una región europea para obtener una coma como símbolo decimal y luego el punto y coma será el separador de lista.
yosh m
0

Si no hay otras comas en el archivo, simplemente puede buscar / reemplazar en un editor de texto en punto y coma para convertirlas en comas. Tratar como archivo CSV normal después de eso.

DHayes
fuente
Estos archivos CSV deben funcionar en diferentes países (configuraciones regionales), y en muchas configuraciones regionales la coma es el separador decimal en lugar del punto. Un archivo "estándar" de valores separados por comas no funcionará. Supongo que esa es la razón por la cual se agregaron punto y coma como delimitador válido para archivos CSV.
Holgerwa