Pregunta Excel a CSV con codificación UTF8


Tengo un archivo Excel que tiene algunos caracteres en español (tildes, etc.) que necesito convertir a un archivo CSV para usarlo como un archivo de importación. Sin embargo, cuando guardo como CSV destruye 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 de Excel en Mac.

Como CSV es solo un archivo de texto, estoy seguro de que puede manejar una codificación UTF8, así que supongo que es una limitación de Excel, pero estoy buscando una manera de obtener de Excel a CSV y mantener los caracteres no ASCII intacto.


515
2017-11-19 00:48


origen


Respuestas:


Una solución simple es usar Google Spreadsheet. 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 o complementos VB para forzar el guardado como UTF8. No he probado ninguna de estas soluciones pero suenan razonables.


358
2017-11-19 01:08



He encontrado Oficina abiertaLa aplicación de hoja de cálculo, Calc, es muy buena en el manejo de 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.

calc save dialog


108
2017-11-19 00:59



  1. Guarde la hoja de Excel como "Texto Unicode (.txt)". La buena noticia es que todos los personajes 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 CSV verdadero.

  2. (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 ",".

  3. Importe su archivo * .txt en la aplicación de destino. Asegúrese de que pueda 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 encontrar tu método favorito para hacerlo.

Utilizo este procedimiento para importar datos de Excel a Moodle.


97
2018-03-19 12:51



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 forma de hacer esto simplemente usando Excel.

Afortunadamente, he encontrado que la cuestión del carácter perdido solo sucede (en mi caso) al guardar desde el formato xlsx al formato csv. Traté de guardar el archivo xlsx en xls primero, luego en csv. En realidad funcionó.

Pruébalo y mira si funciona para ti. Buena suerte.


41
2017-10-30 00:36



Puedes usar iconv bajo Unix (también disponible en Windows como libiconv)

Después de guardar como CSV en Excel en la línea de comando, escriba:

iconv -f cp1250 -t utf-8 file-encoded-cp1250.csv > file-encoded-utf8.csv

(recuerde reemplazar cp1250 con su codificación).

Funciona de manera rápida y excelente para grandes archivos como la base de datos de códigos postales, que no se pueden importar a GoogleDocs (límite de 400,000 celdas).


32
2018-06-12 10:33



La única "manera fácil" de hacer esto es la siguiente. Primero, tenga en cuenta que existe una diferencia entre lo que se muestra y lo que se mantiene oculto en el archivo Excel .csv.

(1) Abra un archivo de Excel donde tenga la información (.xls, .xlsx)

(2) En Excel, seleccione "CSV (coma delimitada) (* .csv) como el tipo de archivo y guárdelo como ese tipo.

(3) En NOTEPAD (que se encuentra en "Programas" y luego en Accesorios en el menú Inicio), abra el archivo .csv guardado en el Bloc de notas

(4) Luego elija -> Guardar como ... y en la parte inferior del cuadro "guardar como", hay un cuadro de selección etiquetado como "Codificación". Seleccione UTF-8 (NO use ANSI o pierde todos los acentos, etc.). Después de seleccionar UTF-8, guarde el archivo en un nombre de archivo ligeramente diferente del original.

Este archivo está en UTF-8 y conserva todos los caracteres y acentos, y se puede importar, por ejemplo, en MySQL y otros programas de base de datos.

Esta respuesta está tomada de este foro.


22
2018-01-27 21:05



Otro que he encontrado útil: "Números"permite la configuración de codificación cuando se guarda como CSV.


21
2018-04-04 08:30



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 entre comillas, caracteres CJK, etc.

1. Guardar desde Excel

En Excel, guarde los datos en file.txt usando el tipo Unicode Text (*.txt).

2. Inicie PowerShell

correr powershell desde el menú Inicio.

3. Cargue el archivo en PowerShell

$data = Import-Csv C:\path\to\file.txt -Delimiter "`t" -Encoding BigEndianUnicode

4. Guarde los datos como CSV

$data | Export-Csv file.csv -Encoding UTF8 -NoTypeInformation

17
2017-07-13 15:18



"nevets1219" tiene razón acerca de los documentos de Google, sin embargo, si simplemente "importa" el archivo, a menudo no lo convierte a UTF-8.

Pero si importa el archivo CSV en una hoja de cálculo existente de Google, lo convierte a UTF-8.

Aquí hay una receta:

  • En la pantalla principal de Documentos (o Unidad), haga clic en el botón "Crear" y seleccione "Hoja de cálculo"
  • En el menú "Archivo", selecciona "Importar"
  • Haga clic en "Elegir archivo"
  • Elija "Reemplazar hoja de cálculo"
  • Elija cualquier personaje que esté usando como separador
  • Haga clic en "Importar"
  • En el menú "Archivo", selecciona "Descargar como" -> CSV (hoja actual)

El archivo resultante estará en UTF-8


14
2018-05-18 16:06