Tengo un archivo Excel que tiene algunos caracteres españoles (tildes, etc.) que necesito convertir a un archivo CSV para usarlo como archivo de importación. Sin embargo, cuando guardo Guardar como CSV, manipula los caracteres españoles "especiales" que no son caracteres ASCII. También parece hacer esto con las comillas izquierda y derecha y los guiones largos que parecen provenir del usuario original que crea el archivo Excel en Mac.
Dado que CSV es solo un archivo de texto, estoy seguro de que puede manejar una codificación UTF8, por lo que supongo que es una limitación de Excel, pero estoy buscando una manera de pasar de Excel a CSV y mantener los caracteres no ASCII intacto.
Respuestas:
Una solución simple es usar la hoja de cálculo de Google. Pegue (valores solo si tiene fórmulas complejas) o importe la hoja y luego descargue CSV. Acabo de probar algunos personajes y funciona bastante bien.
NOTA: Google Sheets tiene limitaciones al importar. Ver aquí .
NOTA: Tenga cuidado con los datos confidenciales con Hojas de cálculo de Google.
EDITAR: Otra alternativa : básicamente usan macro VB o complementos para forzar el guardado como UTF8. No he probado ninguna de estas soluciones, pero suenan razonables.
fuente
He descubierto que la aplicación de hoja de cálculo de OpenOffice , Calc, es realmente buena para manejar datos CSV.
En el cuadro de diálogo "Guardar como ...", haga clic en "Opciones de formato" para obtener diferentes codificaciones para CSV. LibreOffice funciona de la misma manera AFAIK.
fuente
Guarde la hoja de Excel como "Texto Unicode (.txt)". La buena noticia es que todos los caracteres internacionales están en UTF16 (nota, no en UTF8). Sin embargo, el nuevo archivo "* .txt" está delimitado por TAB, no delimitado por comas y, por lo tanto, no es un verdadero CSV.
(opcional) A menos que pueda usar un archivo delimitado por TAB para importar, use su editor de texto favorito y reemplace los caracteres TAB con comas ",".
Importe su archivo * .txt en la aplicación de destino. Asegúrese de que puede aceptar el formato UTF16.
Si UTF-16 se ha implementado correctamente con soporte para puntos de código que no son BMP, puede convertir un archivo UTF-16 a UTF-8 sin perder información. Te dejo a ti encontrar tu método favorito para hacerlo.
Utilizo este procedimiento para importar datos de Excel a Moodle.
fuente
;
, luego importé el archivo txt a phpmyadmin con el "Juego de caracteres predeterminado del archivo: utf-8", Formato "CSV usando LOAD DATA ". Toda la codificación se transfirió correctamente.Sé que esta es una vieja pregunta, pero me encontré con esta pregunta mientras luchaba con los mismos problemas que el OP.
Al no haber encontrado ninguna de las soluciones ofrecidas como una opción viable, me propuse descubrir si hay una manera de hacerlo simplemente usando Excel.
Afortunadamente, descubrí que el problema del personaje perdido solo ocurre (en mi caso) cuando se guarda del formato xlsx al formato csv. Intenté guardar el archivo xlsx en xls primero, luego en csv. En realidad funcionó.
Pruébalo y comprueba si te funciona. Buena suerte.
fuente
Windows comma separated (CSV)
. No funciona si uso las opciones CSV predeterminadas o DOS: ambas sustituyen los caracteres acentuados por caracteres basura aleatorios. La prueba de caracteres, incluyendoé
,è
,â
... No sé si es UTF8 real, pero los personajes no se truncan.Puede usar el comando iconv en Unix (también disponible en Windows como libiconv ).
Después de guardar como CSV en Excel en la línea de comando poner:
(recuerde reemplazar cp1250 con su codificación).
Funciona rápido y excelente para archivos grandes como la base de datos de códigos postales, que no se pueden importar a GoogleDocs (límite de 400,000 celdas).
fuente
sed
otr
para traducir de '\ t' a ','Puede hacer esto en una máquina moderna de Windows sin software de terceros. Este método es confiable y manejará datos que incluyen comas entre comillas, caracteres de tabulación con comillas, caracteres CJK, etc.
1. Guardar desde Excel
En Excel, guarde los datos para
file.txt
usar el tipoUnicode Text (*.txt)
.2. Inicie PowerShell
Ejecute
powershell
desde el menú Inicio.3. Cargue el archivo en PowerShell
4. Guarde los datos como CSV
fuente
CHARACTER SET utf8mb4
como se describe aquí: stackoverflow.com/a/10959780/470749La única "forma fácil" de hacerlo es la siguiente. Primero, tenga en cuenta que hay una diferencia entre lo que se muestra y lo que se mantiene oculto en el archivo .csv de Excel.
Este archivo está en UTF-8 y retiene todos los caracteres y acentos y puede importarse, por ejemplo, a MySQL y otros programas de bases de datos.
Esta respuesta está tomada de este foro .
fuente
Otro que he encontrado útil: " Numbers " permite la configuración de codificación al guardar como CSV.
fuente
"nevets1219" tiene razón sobre los documentos de Google, sin embargo, si simplemente "importa" el archivo, a menudo no lo convierte a UTF-8.
Pero si importa el CSV en una hoja de cálculo de Google existente, se convierte a UTF-8.
Aquí hay una receta:
El archivo resultante estará en UTF-8
fuente
Usando Notepad ++
Esto reparará el archivo CSV dañado guardado por Excel y lo volverá a guardar en la codificación adecuada.
Excel guarda en CP-1252 / Windows-1252. Abra el archivo CSV en Notepad ++. Seleccione
Entonces
Primero dígale a Notepad ++ la codificación, luego convierta. Algunas de estas otras respuestas se están convirtiendo sin establecer primero la codificación adecuada, lo que daña aún más el archivo. Ellos a su vez lo que debería ser
’
en達
. Si tu personaje no cabe en el CP-1252, entonces ya se perdió cuando se guardó como CSV. Usa otra respuesta para eso.fuente
.csv
es un archivo de texto. Esta respuesta abrirá el archivo CSV dañado por Excel, lo arreglará y luego lo volverá a guardar con la codificación adecuada.En Excel 2016 y versiones posteriores (incluido Office 365), hay una opción CSV dedicada al formato UTF-8.
En Office 365, haga Guardar como; donde anteriormente uno podría haber elegido CSV (delimitado por comas), ahora uno de los tipos de archivos que puede guardar es CSV UTF-8 (delimitado por comas) (* .csv)
fuente
Para aquellos que buscan una solución completamente programática (o al menos del lado del servidor), he tenido un gran éxito al usar la herramienta xls2csv de catdoc.
Instalar catdoc:
Haz la conversión:
Esto es increíblemente rápido.
Tenga en cuenta que es importante que incluya el
-d utf-8
indicador, de lo contrario, codificará la salida en lacp1252
codificación predeterminada , y corre el riesgo de perder información.Tenga en cuenta que
xls2csv
también solo funciona con.xls
archivos, no funciona con.xlsx
archivos.fuente
¿Qué pasa con el uso de Powershell?
fuente
La forma más fácil: no es necesario Open office y google docs
csv
archivo que acaba de cambiar de nombre y reemplace todas las pestañas con comas. Para hacer esto en el Bloc de notas en Win 10, simplemente seleccione un campo de pestaña y luego haga clicCtrl+H
. En la ventana que se abre, escriba una coma,
en el campo "Reemplazar por" y luego haga clic en "Reemplazar todo". Guarda tu archivo. El resultado será un archivo csv UTF-8 delimitado por comas.¡No lo abras con MS-Office de todos modos! Ahora tiene un archivo CSV delimitado por tabulaciones. O bien, delimitado por comas si aplicó el paso número 5.
fuente
.txt
extensión.csv
, es decir, archivos separados por comas, es confuso.Por divertido que parezca, la forma más fácil de guardar mi hoja de cálculo de 180 MB en un archivo CSV UTF8 fue seleccionar las celdas en Excel, copiarlas y pegar el contenido del portapapeles en SublimeText.
fuente
No pude encontrar una solución VBA para este problema en Mac Excel. Simplemente no parecía haber forma de generar texto UTF-8.
Así que finalmente tuve que renunciar a VBA, mordí la bala y aprendí AppleScript. No fue tan malo como había pensado.
La solución se describe aquí: http://talesoftech.blogspot.com/2011/05/excel-on-mac-goodbye-vba-hello.html
fuente
Suponiendo un entorno de Windows, guarde y trabaje con el archivo como de costumbre en Excel, pero luego abra el archivo de Excel guardado en Gnome Gnumeric (gratis). Guarde la hoja de cálculo de Gnome Gnumeric como CSV que, para mí de todos modos, la guarda como UTF-8 CSV.
fuente
Manera fácil de hacerlo: descargue open office ( aquí ), cargue la hoja de cálculo y abra el archivo de Excel (
.xls
o.xlsx
). Luego, guárdelo como un archivo CSV de texto y se abrirá una ventana pidiéndole que mantenga el formato actual o que lo guarde como formato .ODF. seleccione "mantener el formato actual" y en la nueva ventana seleccione la opción que mejor funcione para usted, de acuerdo con el idioma en el que se haya escrito su archivo. Para el idioma español, seleccione Europa occidental (Windows-1252/ WinLatin 1
) y el archivo funciona bien. Si selecciona Unicode (UTF-8
), no funcionará con los caracteres españoles.fuente
Guardar archivo xls (archivo Excel) como texto Unicode => el archivo se guardará en formato de texto (.txt)
Cambie el formato de .txt a .csv (cambie el nombre del archivo de XYX.txt a XYX.csv
fuente
También me encontré con el mismo problema, pero hay una solución fácil para esto.
Funciona perfectamente y se genera un archivo csv que se puede importar en cualquier software. Importé este archivo csv en mi base de datos SQLITE y funciona perfectamente con todos los caracteres unicode intactos.
fuente
Encontré el mismo problema y busqué en Google esta publicación. Nada de lo anterior funcionó para mí. Finalmente, convertí mi .xls Unicode a .xml (elija Guardar como ... Hoja de cálculo XML 2003) y produjo el carácter correcto. Luego escribí el código para analizar el xml y extraje el contenido para mi uso.
fuente
He escrito un pequeño script de Python que puede exportar hojas de trabajo en UTF-8.
Solo tiene que proporcionar el archivo de Excel como primer parámetro seguido de las hojas que desea exportar. Si no proporciona las hojas, el script exportará todas las hojas de trabajo que están presentes en el archivo de Excel.
fuente
Excel generalmente guarda un archivo csv como codificación ANSI en lugar de utf8.
Una opción para corregir el archivo es usar Notepad o Notepad ++:
fuente
Una segunda opción para "nevets1219" es abrir su archivo CSV en Notepad ++ y hacer una conversión a ANSI.
Elija en el menú superior: Codificación -> Convertir a Ansi
fuente
Codificación -> Convertir a Ansi lo codificará en ANSI / UNICODE. Utf8 es un subconjunto de Unicode. Quizás en ANSI se codifique correctamente, pero aquí estamos hablando de UTF8, @SequenceDigitale.
Hay formas más rápidas, como exportar como csv (delimitado por comas) y luego, abrir ese csv con Notepad ++ (gratis), luego Codificar> Convertir a UTF8. Pero solo si tiene que hacer esto una vez por archivo. Si necesita cambiar y exportar con frecuencia, lo mejor es la solución LibreOffice o GDocs.
fuente
Microsoft Excel tiene una opción para exportar una hoja de cálculo con codificación Unicode. Ver la siguiente captura de pantalla.
fuente
Abra .csv bien con el bloc de notas ++. si ve que su codificación es buena (ve todos los caracteres como deberían ser) presione codificación, luego convierta a ANSI más; descubra cuál es su codificación actual
fuente
otra solución es abrir el archivo con winword y guardarlo como txt y luego volver a abrirlo con Excel y funcionará ISA
fuente
Cuadro de diálogo Guardar> Botón Herramientas> Opciones web> Pestaña Codificación
fuente
Tengo el mismo problema y me encuentro con este complemento, y funciona perfectamente bien en Excel 2013, además de Excel 2007 y 2010, por lo que se menciona.
fuente