Guías

Cómo abrir un archivo CSV demasiado grande para Excel

Por el equipo de Opener6 min de lectura

Una hoja de Excel admite como máximo 1 048 576 filas y 16 384 columnas, así que una exportación de 3 millones de filas sencillamente no cabe: Excel carga la primera parte, te avisa y deja el resto fuera. Para ver el archivo completo, ábrelo en una herramienta sin ese límite, como el Visor de CSV, cárgalo en el modelo de datos de Excel en lugar de en una hoja, divídelo o analízalo con Python o con una base de datos.

Por qué Excel corta el archivo

Un archivo CSV no tiene límite de tamaño propio. Es texto plano: una línea por fila y valores separados por comas o por punto y coma (si esto te suena nuevo, consulta qué es un archivo CSV). Excel, en cambio, mete todo lo que abres en una hoja de cálculo, y una hoja tiene una cuadrícula fija: 1 048 576 filas por 16 384 columnas (columna XFD).

Cuando el archivo es más grande que esa cuadrícula, Excel muestra un aviso de que el archivo no se ha cargado por completo y se queda solo con las filas que caben. Entran el encabezado y 1 048 575 filas de datos; de la fila 1 048 577 en adelante, nada aparece en pantalla.

Hojas de cálculo de Google tampoco es una salida. Tiene un límite de 10 millones de celdas por hoja de cálculo, contando todas las hojas. Un archivo con 3 millones de filas y 10 columnas ya suma 30 millones de celdas, así que tampoco se importará.

El verdadero riesgo: guardar hace perder datos

El aviso se cierra con un clic, y lo que queda en pantalla parece una tabla perfectamente normal. El peligro llega después:

Si Excel ya te ha mostrado el aviso, cierra el archivo sin guardar y deja intacta la exportación original. Después comprueba lo grande que es en realidad antes de decidir qué hacer.

Opción 1: abre el archivo completo en tu navegador

Si sobre todo necesitas ver los datos (revisar algunos registros, buscar un cliente, ver qué contiene una columna), un visor sin límite de cuadrícula es lo más rápido.

El Visor de CSV de Opener lee el archivo en tu navegador y nunca lo sube, algo importante cuando la exportación contiene datos de clientes o financieros. El análisis se hace en un hilo en segundo plano y solo se dibujan las filas que hay en pantalla, así que un archivo de 200 000 filas se abre en un segundo aproximadamente y los archivos con millones de filas funcionan en un portátil normal. El límite práctico es la memoria de tu dispositivo, no un número fijo de filas.

Una vez abierto, puedes:

Esto último es un truco muy práctico: filtra los 3 millones de filas hasta quedarte con las 40 000 que mencionan una región, expórtalas y el archivo resultante, más pequeño, se abrirá en Excel sin ningún aviso. El visor no ejecuta fórmulas, tablas dinámicas ni gráficos; para eso, sigue leyendo.

Opción 2: cárgalo en el modelo de datos de Excel

Las versiones de escritorio recientes de Excel pueden importar un CSV mediante Power Query (la vía «Obtener datos» / «Desde el texto/CSV» de la pestaña «Datos») en lugar de abrirlo directamente. La diferencia está en dónde acaban los datos.

En lugar de cargar el resultado en una hoja, elige cargarlo solo como conexión y agregarlo al modelo de datos. El modelo de datos guarda la información de forma comprimida fuera de la cuadrícula, así que no está sujeto al límite de 1 048 576 filas. Después puedes crear una tabla dinámica sobre él y resumir los 3 millones de filas: totales por mes, recuentos por categoría, etc.

La contrapartida: no puedes desplazarte por las filas como en una hoja normal, y los nombres exactos de los menús cambian según la versión de Excel. Es la mejor opción cuando necesitas quedarte en Excel y el resultado final es un resumen, no una vista fila a fila.

Opción 3: cuenta, previsualiza y divide desde la línea de comandos

En macOS, en Linux o en Windows con WSL, unos pocos comandos estándar responden en segundos a «¿cómo de grande es?» y «¿qué contiene?», sin cargar el archivo en ningún programa:

wc -l export.csv              # número de líneas
head -n 20 export.csv         # las 20 primeras líneas
head -n 100000 export.csv > sample.csv   # una muestra más pequeña para hacer pruebas

Ten en cuenta que wc -l cuenta líneas, no filas. Si algunos valores contienen saltos de línea entre comillas (pasa a menudo con direcciones y comentarios), el número de líneas será mayor que el de filas.

Para dividir el archivo en trozos que Excel pueda abrir, cada uno con su propia fila de encabezado:

tail -n +2 export.csv | split -l 1000000 - part_
for f in part_*; do
  { head -n 1 export.csv; cat "$f"; } > "$f.csv" && rm "$f"
done

Dividir sirve para comprobaciones rápidas, pero cuidado con el mismo problema de los saltos de línea entre comillas: split corta por líneas y puede partir por la mitad un valor de varias líneas. Además, trabajar con cuatro libros separados resulta engorroso si necesitas totales de todos ellos.

Opción 4: analízalo con pandas, SQLite o DuckDB

Si vas a calcular, combinar o agregar datos, la respuesta honesta es una herramienta de datos de verdad. Todas estas manejan decenas de millones de filas en un portátil corriente.

Python con pandas lee el archivo entero en memoria:

import pandas as pd

df = pd.read_csv("export.csv")
print(len(df))
print(df.groupby("region")["amount"].sum())

Si el archivo es más grande que tu RAM, léelo por bloques:

total = 0
for chunk in pd.read_csv("export.csv", chunksize=500_000):
    total += chunk["amount"].sum()

DuckDB puede consultar un archivo CSV directamente con SQL, sin importarlo antes:

SELECT region, COUNT(*) AS orders, SUM(amount) AS revenue
FROM 'export.csv'
GROUP BY region
ORDER BY revenue DESC;

SQLite viene instalado en muchos sistemas y va bien cuando quieres guardar los datos en un único archivo que se pueda consultar:

sqlite3 sales.db
sqlite> .mode csv
sqlite> .import export.csv sales
sqlite> SELECT COUNT(*) FROM sales;

Un buen flujo de trabajo es hacer aquí el trabajo pesado y después escribir un resultado pequeño (unos pocos miles de filas de resumen) en un CSV para Excel o para un informe.

Preguntas frecuentes

¿Puedo aumentar el límite de filas de Excel?

No. El límite de 1 048 576 filas es fijo para todas las hojas. Solo puedes sortearlo: cargar los datos en el modelo de datos, dividir el archivo o usar otra herramienta.

¿Cómo sé si mi archivo se ha recortado?

Excel avisa al abrir el archivo, y una hoja cuyos datos terminan justo en la fila 1 048 576 es una señal clara. Para estar seguro, comprueba el tamaño del archivo original con wc -l o ábrelo en el Visor de CSV, que muestra el número total de filas.

¿Lo abrirán Hojas de cálculo de Google o LibreOffice?

Normalmente no. Hojas de cálculo de Google tiene un tope de 10 millones de celdas por hoja de cálculo, y LibreOffice Calc también tiene un número máximo fijo de filas por hoja. Los dos van bien con archivos más pequeños, pero una exportación de varios millones de filas necesita un visor, una base de datos o un script.

¿Es seguro abrir una exportación grande de clientes en una herramienta del navegador?

Depende de la herramienta. Muchos conversores online suben tu archivo a un servidor. Opener lee el archivo en local, en tu navegador, y no envía nada a ningún sitio, así que los datos se quedan en tu dispositivo.