excel - mac - notepad++ guardar csv
Excel a CSV con codificación UTF8 (30)
Usando Notepad ++
Esto solucionará el archivo CSV dañado guardado por Excel y lo volverá a guardar con la codificación adecuada.
- Exportar CSV desde Excel
- Cargar en Notepad ++
- Corrección de codificación
- Salvar
Excel guarda en CP-1252 / Windows-1252. Abra el archivo CSV en Notepad ++. Seleccionar
Encoding > Character Sets > Western European > Windows-1252
Entonces
Encoding > Convert to UTF-8
File > Save
Primero diga a Notepad ++ la codificación, luego convierta. Algunas de estas otras respuestas se están convirtiendo sin configurar primero la codificación adecuada, lo que hace que el archivo se distorsione aún más. Ellos convertirían lo que debería ser ''
en. Si su personaje no encaja en CP-1252, entonces ya se perdió cuando se guardó como CSV. Usa otra respuesta para eso.
Tengo un archivo de Excel que tiene algunos caracteres españoles (tildes, etc.) que necesito convertir a un archivo CSV para usar como un archivo de importación. Sin embargo, cuando hago Guardar como CSV, maneja los caracteres "especiales" en español 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.
Ya que 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 forma de pasar de Excel a CSV y mantener los caracteres no ASCII intacto.
Guarde el archivo xls (archivo de 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
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 CSV verdadero.
(opcional) A menos que pueda usar un archivo delimitado por TAB para importar, use su editor de texto favorito y reemplace los caracteres de 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 lo dejo a ti para encontrar tu método favorito de hacerlo.
Utilizo este procedimiento para importar datos de Excel a Moodle.
"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:
- En la pantalla principal de Docs (o Drive) haga clic en el botón "Crear" y elija "Hoja de cálculo"
- Desde el menú "Archivo" elija "Importar"
- Haga clic en "Elegir archivo"
- Elija "Reemplazar hoja de cálculo"
- Elige el personaje que estés usando como separador
- Haga clic en "Importar"
- Desde el menú "Archivo", elija "Descargar como" -> CSV (hoja actual)
El archivo resultante estará en UTF-8.
¿Qué pasa con el uso de Powershell.
Get-Content ''C:/my.csv'' | Out-File ''C:/my_utf8.csv'' -Encoding UTF8
Bajo Excel 2016, tenemos una opción de exportación CSV dedicada al formato UTF-8.
Codificación -> Convertir a Ansi lo codificará en ANSI / UNICODE. Utf8 es un subconjunto de Unicode. Tal vez en ANSI se codificará 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 tienes que hacer esto una vez por archivo. Si necesita cambiar y exportar con frecuencia, lo mejor es la solución de LibreOffice o GDocs.
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 ... XML Spreadsheet 2003) y produjo el carácter correcto. Luego escribí un código para analizar el xml y extraje el contenido para mi uso.
Excel normalmente guarda un archivo csv como codificación ANSI en lugar de utf8.
Una opción para corregir el archivo es usar Notepad o Notepad ++:
- Abra el archivo .csv con Notepad o Notepad ++.
- Copia los contenidos al portapapeles de tu computadora.
- Eliminar los contenidos del archivo.
- Cambia la codificación del archivo a utf8.
- Vuelve a pegar el contenido desde el portapapeles.
- Guarda el archivo.
Guardar cuadro de diálogo> Botón Herramientas> Opciones web> Ficha Codificación
He encontrado que la aplicación de hoja de cálculo de OpenOffice , Calc, es realmente 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.
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, la secuencia de comandos exportará todas las hojas de trabajo que están presentes en el archivo de Excel.
#!/usr/bin/env python
# export data sheets from xlsx to csv
from openpyxl import load_workbook
import csv
from os import sys
reload(sys)
sys.setdefaultencoding(''utf-8'')
def get_all_sheets(excel_file):
sheets = []
workbook = load_workbook(excel_file,use_iterators=True,data_only=True)
all_worksheets = workbook.get_sheet_names()
for worksheet_name in all_worksheets:
sheets.append(worksheet_name)
return sheets
def csv_from_excel(excel_file, sheets):
workbook = load_workbook(excel_file,use_iterators=True,data_only=True)
for worksheet_name in sheets:
print("Export " + worksheet_name + " ...")
try:
worksheet = workbook.get_sheet_by_name(worksheet_name)
except KeyError:
print("Could not find " + worksheet_name)
sys.exit(1)
your_csv_file = open(''''.join([worksheet_name,''.csv'']), ''wb'')
wr = csv.writer(your_csv_file, quoting=csv.QUOTE_ALL)
for row in worksheet.iter_rows():
lrow = []
for cell in row:
lrow.append(cell.value)
wr.writerow(lrow)
print(" ... done")
your_csv_file.close()
if not 2 <= len(sys.argv) <= 3:
print("Call with " + sys.argv[0] + " <xlxs file> [comma separated list of sheets to export]")
sys.exit(1)
else:
sheets = []
if len(sys.argv) == 3:
sheets = list(sys.argv[2].split('',''))
else:
sheets = get_all_sheets(sys.argv[1])
assert(sheets != None and len(sheets) > 0)
csv_from_excel(sys.argv[1], sheets)
La única "manera fácil" de hacer esto es la siguiente. Primero, comprenda que existe una diferencia entre lo que se muestra y lo que se mantiene oculto en el archivo .csv de Excel.
(1) Abra un archivo de Excel donde tenga la información (.xls, .xlsx)
(2) En Excel, elija "CSV (delimitado por comas) (* .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 perderá todos los acentos, etc.). Después de seleccionar UTF-8, guarde el archivo en un nombre de archivo ligeramente diferente al original.
Este archivo está en UTF-8 y conserva todos los caracteres y acentos y se puede importar, por ejemplo, a MySQL y otros programas de bases de datos.
Esta respuesta es tomada de este foro .
Microsoft Excel tiene una opción para exportar hojas de cálculo utilizando la codificación Unicode. Vea la siguiente captura de pantalla.
No pude encontrar una solución VBA para este problema en Mac Excel. Simplemente parecía que no había forma de generar texto en 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
Otro que he encontrado útil: " Números " permite la configuración de codificación al guardar como CSV.
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.
Instale catdoc:
apt-get install catdoc
Hacer la conversión:
xls2csv -d utf-8 file.xls > file-utf-8.csv
Esto está ardiendo rápido.
Tenga en cuenta que es importante que incluya el indicador -d utf-8
, de lo contrario, codificará la salida en la codificación de cp1252
predeterminada y corre el riesgo de perder información.
Tenga en cuenta que xls2csv
también funciona solo con archivos .xls
, no funciona con archivos .xlsx
.
Por gracioso que parezca, la forma más fácil que encontré de guardar mi hoja de cálculo de 180MB en un archivo UTF8 CSV fue seleccionar las celdas en Excel, copiarlas y pegar el contenido del portapapeles en SublimeText.
Puede hacer esto en una máquina moderna de Windows sin software de terceros. Este método es confiable y manejará datos que incluyen comillas entre comillas, caracteres de tabulación, caracteres CJK, etc.
1. Guardar desde Excel
En Excel, guarde los datos en file.txt
utilizando el tipo de Unicode Text (*.txt)
.
2. Inicia PowerShell
Ejecute powershell
desde el menú Inicio.
3. Cargue el archivo en PowerShell
$data = Import-Csv C:/path/to/file.txt -Delimiter "`t" -Encoding BigEndianUnicode
4. Guardar los datos como CSV
$data | Export-Csv file.csv -Encoding UTF8 -NoTypeInformation
Puede usar el comando iconv en Unix (también disponible en Windows como libiconv ).
Después de guardar como CSV bajo Excel en la línea de comando poner:
iconv -f cp1250 -t utf-8 file-encoded-cp1250.csv > file-encoded-utf8.csv
(Recuerde reemplazar el 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).
Sé que esta es una pregunta antigua, pero encontré esta pregunta mientras luchaba con los mismos problemas que el OP.
No habiendo encontrado ninguna de las soluciones ofrecidas como una opción viable, me propuse descubrir si hay una manera de hacer esto usando Excel.
Afortunadamente, he encontrado que el problema de la pérdida de caracteres solo ocurre (en mi caso) cuando se guarda desde el formato xlsx al formato csv. Intenté guardar el archivo xlsx en xls primero, luego en csv. En realidad funcionó.
Por favor, pruébalo y ve si funciona para ti. Buena suerte.
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 CSV de UTF-8.
También he encontrado el mismo problema pero hay una solución fácil para esto.
- Abra su archivo xlsx en Excel 2016 o superior.
- En "Guardar como" elija esta opción: "(CSV UTF-8 (delimitado por comas) * .csv)"
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 intactos de Unicode.
Tengo el mismo problema y me encuentro con this complemento, y funciona perfectamente bien en Excel 2013 además de Excel 2007 y 2010, por lo que se menciona.
Una forma sencilla de hacerlo: descargue la oficina abierta ( OpenOffice ), cargue la hoja de cálculo y abra el archivo excel ( .xls
o .xlsx
). Luego simplemente guárdelo como un archivo CSV de texto y se abrirá una ventana que le pedirá que mantenga el formato actual o que lo guarde como un formato .ODF. seleccione "mantener el formato actual" y en la nueva ventana, seleccione la opción que mejor le funcione, 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.
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
Una solución simple es usar Google Spreadsheet. Pegue (valore solo si tiene fórmulas complejas) o importe la hoja y descargue CSV. Acabo de probar algunos caracteres y funciona bastante bien.
NOTA: Google Sheets tiene limitaciones al importar. Ver here
NOTA: Tenga cuidado con los datos confidenciales con Google Sheets.
EDITAR: Otra alternativa : básicamente usan macro VB o complementos para forzar el guardado como UTF8. No he probado ninguna de estas soluciones pero parecen razonables.
abre .csv bien con notepad ++. si ve que la codificación es buena (ve todos los caracteres como deberían ser) presione codificación, luego conviértalos a ANSI else - averigüe cuál es su codificación actual
otra solución es abrir el archivo por winword y guardarlo como txt y luego volver a abrirlo por Excel y funcionará ISA
Manera más fácil: sin necesidad de Open Office y Google Docs.
- Guarde su archivo como "archivo de texto Unicode";
- ahora tienes un archivo de texto Unicode
- ábralo con "notepad" y "Guárdelo" seleccionando "utf-8" u otra página de códigos que desee
- renombrar la extensión de archivo de "txt" a "csv"
¡¡¡No lo abras con Ms-office de todos modos !!! Ahora tienes un archivo CSV delimitado por tabulaciones.