Saltar al contenido
Convertube

Archivos CSV: el formato sin tipos, sin codificación y sin comité

Qué es de verdad un CSV, por qué el mismo archivo se abre distinto en dos hojas de cálculo y qué dicen las reglas de comillas. Convierte CSV en tu navegador.

De un vistazo

Tipo
Documentos
Extensiones
.csv
Tipo MIME
text/csv

Un archivo .csv es un archivo de texto. No tiene cabecera, ni versión, ni información de tipos, ni nada binario: ábrelo en el Bloc de notas y verás hasta el último byte. Cada línea es una fila, y algo separa los campos. Ese es todo el formato, y por eso todo puede escribir uno y no hay dos programas que coincidan en lo que significa.

Leer más

Pasó veinticinco años sin especificación. El RFC 4180 llegó en 2005 y es explícitamente informativo, no un estándar: describe lo que hace la mayoría de las implementaciones, no le dice a nadie lo que tiene que hacer. Lo que sí deja resuelto son las comillas: un campo que contiene el separador, una comilla o un salto de línea se encierra entre comillas dobles, y una comilla dentro de ese campo se escribe dos veces. Esa regla es la diferencia entre que "Widget, large" sea una celda o dos, y es la regla que se saltan los analizadores ingenuos.

El separador no siempre es una coma. Una hoja de cálculo configurada en una región que escribe los decimales como 1,5 no puede usar también la coma para separar campos, así que allí Excel exporta con punto y coma: en el mismo equipo, desde el mismo menú, generando un archivo que el país vecino no puede abrir. Las exportaciones de bases de datos suelen usar tabuladores. Cualquier herramienta que lea bien los CSV lo adivina a partir de las primeras líneas, que es también lo que hace esta web.

Tampoco hay ninguna declaración de codificación, y es aquí donde de verdad se pierden los datos. Un CSV de nombres chinos guardado por un programa y abierto por otro sale como caracteres ilegibles porque uno supuso UTF-8 y el otro la página de códigos del sistema. Y como cada campo es texto sin tipo, la hoja de cálculo vuelve a adivinar al importar: desaparecen los ceros a la izquierda de las referencias, los identificadores largos se convierten en notación científica y todo lo que parece una fecha se convierte en una. El archivo estaba bien; lo que falló fue la forma de leerlo.

Convertir CSV a otros formatos

Preguntas frecuentes: CSV

¿Un CSV es solo un archivo de texto?

Sí, por completo. Sin contenedor, sin compresión, nada binario. Cualquier editor de texto lo abre, y lo que ves es lo que contiene.

¿Por qué mi CSV usa punto y coma?

Porque se exportó en una región donde la coma es el separador decimal, así que la coma no podía separar también los campos. Sigue siendo un CSV, y cualquier lector que valga la pena detecta el separador en lugar de suponerlo.

¿Por qué han desaparecido mis ceros a la izquierda?

Porque el CSV no guarda tipos y la hoja de cálculo adivinó. "007" parece un número, así que se convirtió en 7. Al archivo no le pasaba nada: lo decidió la importación. La mayoría de las hojas de cálculo te permiten marcar una columna como texto al importar, que es la única solución fiable.

¿Por qué mi texto en chino sale ilegible?

Porque el archivo no indica su codificación y el programa que lo abre adivinó algo distinto de lo que usó el programa que lo escribió. Guardarlo como UTF-8 con marca de orden de bytes es lo que hace que Excel lo lea bien, a costa de un marcador que otras herramientas muestran como caracteres sueltos.

¿Puedo convertir un CSV a PDF aquí?

Sí. Se analiza como CSV en lugar de dividirse por las comas, así que los campos entre comillas se conservan, y las columnas se dimensionan según su contenido con la fila de cabecera en negrita. Lo que obtienes es para leer e imprimir: en un PDF no se puede ordenar ni sumar nada.

¿Y convertirlo a Excel?

No hace falta: todas las hojas de cálculo abren un CSV directamente, y convertirlo antes solo añade un paso en el que se adivinan los tipos. La conversión que sí existe aquí es la contraria: PDF a Excel, que reconstruye una tabla a partir de una página que nunca la registró.