CSV, Excel o JSON: ¿qué formato para tus datos?
Guardamos la misma tabla de 100 000 filas en CSV, en un libro de Excel y en JSON, y comparamos los pesos, la velocidad de lectura en código y lo que falla con las fechas, los ceros a la izquierda y los números largos.
Las tablas de datos circulan entre personas y programas en tres formatos principales: CSV, libros de Excel (XLSX) y JSON. Cada uno es la opción natural en algún sitio, y cada uno causa un tipo de problema bien conocido cuando acaba en el lugar equivocado. Para compararlos en igualdad de condiciones, guardamos una misma tabla en los tres y medimos el peso y la velocidad de lectura, y luego vimos qué puede contener cada formato y qué no.
La tabla de prueba
La tabla tiene 100 000 pedidos con siete columnas: un número de pedido, una fecha, un país, un producto, una cantidad, un precio unitario y un total. Las primeras filas se ven así en CSV:
order_id,date,country,product,quantity,unit_price,total
100000,2025-11-30,Brazil,Water bottle,6,158.35,950.1
100001,2025-02-25,France,Office chair,7,158.73,1111.11y así en JSON:
[
{
"order_id": 100000,
"date": "2025-11-30",
"country": "Brazil",
"product": "Water bottle",
"quantity": 6,
"unit_price": 158.35,
"total": 950.1
},
...
]Peso del archivo
Pesos en megabytes (MiB). JSON repite el nombre de cada columna en cada fila, por eso pesa dos veces y media lo que CSV.
Un archivo de Excel es un archivo ZIP de documentos XML, así que llega ya comprimido, y Excel guarda cada texto distinto una sola vez en una lista compartida. Eso lo hace un poco más ligero que el CSV aquí. JSON es con diferencia el más pesado: cada fila repite "order_id", "date" y las demás claves, y la sangría añade más de un tercio encima.
El panorama cambia cuando los archivos se comprimen, como ocurre en tránsito cuando un servidor web los envía con gzip:
| Formato | Peso | Con gzip |
|---|---|---|
| CSV | 5,03 MB | 1,36 MB |
| JSON, compacto | 12,37 MB | 1,63 MB |
| JSON, con sangría | 16,95 MB | 1,72 MB |
| XLSX, guardado por Excel | 4,46 MB | ya comprimido |
Velocidad de lectura
El peso importa menos de lo que parece con una conexión moderna. Lo rápido que un programa convierte el archivo de nuevo en filas importa más cuando los datos son grandes. Volvimos a leer cada archivo con las bibliotecas que usan nuestras herramientas de datos, tomando la mediana de cinco ejecuciones:
| Formato | Lectura en filas | Biblioteca |
|---|---|---|
| JSON, compacto | 0,12 s | JSON.parse, integrado en JavaScript |
| CSV | 0,47 s | Papa Parse |
| XLSX | 10,2 s | SheetJS |
JSON gana en el código porque cada lenguaje trae un analizador nativo rápido y los tipos vienen incluidos. CSV necesita un analizador que maneje las comillas y convierta el texto en números. Fuera de Excel, XLSX es con diferencia el más lento: el programa tiene que descomprimir el archivo, analizar un documento XML grande y resolver los textos compartidos y los estilos. Si un script o una aplicación web tiene que leer tablas grandes a menudo, XLSX es el formato equivocado para dárselo.
Qué puede contener cada formato
| CSV | XLSX | JSON | |
|---|---|---|---|
| Tipos de datos | Solo texto | Números, texto, fechas, booleanos | Números, texto, booleanos, null |
| Varias tablas | No, una por archivo | Sí, como hojas | Sí, como objetos anidados |
| Datos anidados | No | No | Sí |
| Fórmulas y formato | No | Sí | No |
| Límite de filas | Ninguno | 1 048 576 filas | Ninguno |
| Legible en un editor de texto | Sí | No | Sí |
| Se abre en Excel | Sí, con cuidado | Sí | Con Power Query o un conversor |
Dónde falla CSV
CSV parece el formato más sencillo, y es precisamente su falta de reglas lo que causa más problemas. Los mismos fallos aparecen una y otra vez:
- Desaparecen los ceros a la izquierda. Los códigos postales, los códigos de producto y los números de teléfono como
02134se convierten en2134cuando una hoja de cálculo supone que son números. - Los números largos pierden dígitos. Excel conserva 15 dígitos significativos, así que un número de tarjeta o de cuenta de 16 dígitos cambia su último dígito sin avisar.
- Las fechas se reinterpretan.
03/04/2025es el 3 de abril en casi todo el mundo y el 4 de marzo en Estados Unidos, y las hojas de cálculo convierten esos valores al abrir el archivo. Las fechas ISO como2025-04-03evitan las conjeturas. - El separador depende del país. Donde la coma es el separador decimal, como en España o en gran parte de Sudamérica, Excel espera punto y coma entre los campos, así que un archivo separado por comas se abre como una sola columna larga.
- Los acentos se convierten en símbolos. Excel solo lee correctamente un CSV en UTF-8 si el archivo empieza con una marca de orden de bytes (BOM). Sin ella, «Café» puede verse como «Café».
- Las comas dentro de los valores deben ir entre comillas, y las comillas dentro de un valor entrecomillado, duplicadas. El CSV hecho a mano suele fallar en esto.
Nada de esto ocurre con XLSX o JSON, que guardan los tipos de forma explícita. Con CSV, el hábito más seguro es abrirlo desde la pantalla de importación de Excel (Datos, Desde el texto/CSV), donde puedes fijar el tipo de cada columna, en lugar de hacer doble clic en el archivo.
Cuál usar
- Enviar una tabla a una persona que la va a mirar, ordenar o añadirle fórmulas: XLSX. Conserva los tipos y el formato y se abre correctamente en cualquier lugar con Excel, Google Sheets, Numbers o LibreOffice.
- Intercambiar datos entre sistemas, importarlos a una base de datos o archivar datos planos: CSV, con codificación UTF-8, fechas ISO y una fila de encabezado. Es universal, compacto y legible dentro de décadas.
- Datos para una aplicación web o una API, o cualquier cosa con estructura anidada: JSON. Es el formato nativo de JavaScript y el más rápido de leer en código.
Convertir entre ellos suele ser la parte fácil. Nuestro conversor de Excel y CSV convierte XLSX, XLS y ODS en CSV o JSON hoja por hoja y crea archivos de Excel a partir de CSV, TSV o JSON, el visor de CSV abre archivos CSV grandes con ordenación y filtros, y el conversor de datos pasa entre JSON, CSV, YAML y XML. Todos funcionan en el navegador, así que los datos nunca salen de tu dispositivo.
Preguntas y respuestas
¿Pesa menos CSV o Excel?
En nuestra prueba, un archivo de Excel guardado por Excel pesó algo menos (4,5 MB) que los mismos datos en CSV (5,0 MB), porque XLSX está comprimido por dentro. Comprimido, el CSV pesaría mucho menos (unos 1,4 MB con gzip).
¿Por qué Excel quita los ceros al principio de mis números?
Excel supone que la columna contiene números al abrir un archivo CSV. Importa el archivo desde Datos, Desde el texto/CSV y define esa columna como Texto, o guarda los datos en XLSX.
¿Se puede abrir JSON en Excel?
Sí, con Power Query (Datos, Obtener datos, Desde un archivo, Desde JSON), o convirtiéndolo antes a CSV o XLSX. Las listas planas de objetos se convierten sin problemas; los datos anidados hay que aplanarlos en columnas.
¿Cuántas filas puede abrir Excel?
Una hoja de Excel admite como máximo 1 048 576 filas y 16 384 columnas. Los archivos CSV más grandes se abren solo en parte, así que usa un visor que lea el archivo por partes o divídelo.
Herramientas de este artículo
Más del blog
ZIP, 7z o RAR: ¿qué formato de archivo comprimido es mejor?
Empaquetamos las mismas carpetas de fotos, videos, documentos y datos en ZIP, 7z y RAR y medimos el peso y la velocidad. El ganador depende casi por completo de lo que hay dentro.
Corrección de errores y tamaño del código QR: L, M, Q y H probados
Una corrección de errores más alta permite que un código QR resista daños, pero también lo hace más denso. Generamos códigos para cuatro tipos comunes de contenido en cada nivel y los tapamos poco a poco hasta que dejaron de leerse.
Las marcas de tiempo Unix, explicadas
Una marca de tiempo Unix es solo un conteo de segundos, y sin embargo causa un flujo constante de errores. Qué cuenta, cómo distinguir segundos de milisegundos de un vistazo, qué pasa con las zonas horarias y los segundos intercalares, y por qué importa 2038.