XLSX

¿Qué es un archivo XLSX?

El formato de Excel desde 2007. Varias hojas, fórmulas y formato.

Qué es XLSX

XLSX es un contenedor: una envoltura para flujos que ha codificado otra cosa. Se usa para la edición.

La extensión es .xlsx y el nombre completo, Excel Workbook. Ambos importan menos que lo que el archivo puede contener, y de eso trata el resto de esta página.

De dónde viene XLSX

Microsoft lo publicó en 2007. La especificación es ECMA-376.

La edad interesa por un motivo práctico: cuanto más antiguo es un formato, más programas han tenido tiempo de aprenderlo.

La especificación es pública

Está publicada entera, así que cualquiera puede implementarla leyendo el documento en vez de a base de inspeccionar archivos. Por eso aparece en tantos programas, y por eso los archivos escritos hace veinte años siguen abriéndose hoy. Publicada no quiere decir libre de regalías: cuando un formato envuelve un códec, la licencia de las patentes es un asunto aparte que la norma no resuelve.

Puede contener varias páginas en un solo archivo

Un archivo XLSX no está limitado a una página, y eso importa al convertirlo a algo que sí lo está: de una conversión sale un único archivo con una sola página dentro — la primera, salvo que el conversor te deje elegir cuál.

No puede contener macros

XLSX no puede llevar código ejecutable. Por eso los servidores de correo y los portales de documentos lo dejan pasar donde detienen a su gemelo con macros.

Qué clase de documento es

XLSX contiene una hoja de cálculo: celdas, fórmulas y las hojas a su alrededor.

Eso decide cómo se convierte: una hoja de cálculo se vuelve un área de impresión, y dónde cortan las columnas es una decisión que alguien tiene que tomar.

Qué hace para protegerse

XLSX lleva cifrado opcional.

Un archivo cifrado hay que abrirlo antes de que nada pueda convertirlo, aquí y en cualquier otro sitio. Una contraseña no es algo que un conversor pueda esquivar, y a uno que dijera lo contrario tampoco habría que confiarle el archivo.

Qué abre XLSX

Microsoft Excel, LibreOffice Calc y Google Sheets lo leen, y también la mayoría de programas del mismo tipo.

Cuando un archivo no se abre, el formato rara vez es el problema: lo más habitual es que el programa sea anterior al formato. Convertir a algo más antiguo es la salida fiable, y para eso está el resto de este sitio.

Abrirlo en el navegador

Ningún navegador lo lee.

Ese es el motivo más frecuente para convertirlo: no que el formato sea malo, sino que el sitio donde quieres mostrar el archivo no sabe leerlo.

Es un formato de trabajo

XLSX está pensado para abrirse y cambiarse. Guarda el archivo en este formato mientras el trabajo siga en marcha y exporta desde él cada vez que haga falta una copia terminada.

Un ZIP lleno de XML que puedes abrir tú mismo

Renombra un .xlsx a .zip y ábrelo. Dentro hay un pequeño árbol de carpetas: un XML por hoja, una tabla compartida con todas las cadenas de texto distintas del libro, un archivo de estilos y una carpeta de propiedades del documento. Cualquier imagen u objeto incrustado está ahí como un archivo aparte.

No es una curiosidad. Es la razón de que un libro dañado se pueda rescatar a veces abriendo el paquete y sacando el XML de la hoja, de que los tamaños se comporten como se comportan, y de que un libro pueda arrastrar cosas que nadie recuerda haber metido. El formato se inspecciona con herramientas que ya tiene todo el mundo.

El corte de 2007 y lo que arregló

XLSX sustituyó al binario XLS con Office 2007. El formato antiguo era un documento compuesto que solo Microsoft entendía del todo; el nuevo está documentado, y esa es la razón de que LibreOffice, Google Sheets, Numbers y decenas de bibliotecas lo lean con fiabilidad cuando el soporte de XLS fue siempre conjetura parcial.

Los límites se movieron a la vez y conviene conocerlos porque la gente sigue chocando con ellos: una hoja admite 1.048.576 filas y 16.384 columnas, frente a 65.536 y 256 antes. Una exportación cortada exactamente en 65.536 filas no es una casualidad: es una herramienta escribiendo el formato viejo.

Las fórmulas se guardan por duplicado

Cada celda con fórmula guarda dos cosas: la fórmula como texto y el último resultado calculado. Por eso un libro se abre mostrando valores en vez de recalcular cien mil celdas primero, y por eso una herramienta que lee XLSX sin motor de cálculo puede aun así dar los números correctos.

También significa que el valor guardado puede estar caducado. Un archivo escrito por un programa que no calcula — muchas bibliotecas de exportación no lo hacen — contiene fórmulas sin resultado, y cada celda se lee como cero o como vacía hasta que Excel lo abre. Si un libro generado aparece vacío justo donde deberían estar los totales, la causa habitual es esa.

Quince dígitos, y a partir de ahí deja de ser exacto

Los números se guardan en coma flotante de doble precisión, que sostiene unos quince dígitos significativos. Un número de tarjeta de dieciséis cifras, una referencia larga de pedido, un IBAN o un identificador nacional pierden las últimas posiciones — de forma permanente, dentro del archivo, no solo en pantalla.

La defensa es declarar la columna como texto antes de que lleguen los datos, para que los dígitos se guarden como caracteres y no como una cantidad. Es el mismo problema de fondo que el cero inicial que desaparece de un código postal de Álava o de una provincia argentina, y vale la misma regla: un identificador no es un número por estar hecho de cifras.

Lo que viaja con el libro sin que lo hayas puesto

Las propiedades del documento llevan el autor, la última persona que guardó, el nombre de empresa que hubiera en la instalación de Office y las fechas de creación y modificación. Las filas, columnas y hojas ocultas están ocultas, no ausentes: los datos están en el XML y los lee cualquiera.

Los vínculos externos son el filo más afilado. Una fórmula que apunta a otro libro guarda la ruta completa desde la que se enlazó, y esa ruta nombra con frecuencia una unidad de red, un cliente o una estructura de carpetas que describe el negocio. Limpiar las propiedades del documento no los quita: viven en la hoja, no en los metadatos.

El limpiador de metadatos sí lo acepta, y qué hace exactamente

XLSX es uno de los formatos de Office que admite la herramienta de metadatos de este sitio, junto a XLSM, DOCX, DOCM, DOTX y PPTX. No recodifica nada: cambia las tres partes de propiedades del paquete por partes vacías con la forma correcta, en vez de borrarlas, para que el índice de tipos de contenido y el archivo de relaciones no queden apuntando a piezas que ya no están. La miniatura incrustada se elimina junto con su relación.

Ahí se va el autor, quién guardó por última vez, la empresa, las fechas y el tiempo total de edición, un contador de los minutos que el libro ha estado abierto a lo largo de su vida entera. Lo que no toca son los vínculos externos del párrafo anterior, que están en la hoja. La herramienta inspecciona el archivo antes y después y enseña las dos listas, así que lo que afirma se comprueba en lugar de creerse.

Un XLSX no puede contener macros

Es deliberado y es de las mejores decisiones del formato. Un archivo terminado en .xlsx no puede llevar código; un libro con macros tiene que guardarse como .xlsm, que lo anuncia en la extensión. Renombrar un XLSM a XLSX no cuela el código: el libro simplemente lo pierde.

De ahí sale una regla útil para lo que llega por correo: un .xlsx a secas no puede ejecutar nada al abrirse. El riesgo vive en el .xlsm y en el antiguo .xls, que sí pueden y que no lo dicen con la misma claridad.

Qué lee de verdad este conversor: la primera hoja y sus valores

Conviene ser muy explícito, porque es la limitación que más sorprende. Al convertir un XLSX a CSV, TSV, JSON, NDJSON, SQL o Parquet, se abre el libro, se toma la primera hoja de la lista y se leen sus valores. Eso es toda la lectura. No se leen las hojas segunda en adelante, ni las fórmulas — solo vuelve el resultado guardado —, ni los formatos de número, ni las celdas combinadas, ni los gráficos, ni las imágenes, ni los anchos de columna, ni las alturas de fila, ni los estilos, ni la validación de datos, ni los comentarios, ni los nombres definidos, ni las tablas dinámicas.

En el sentido contrario, el XLSX que escribimos tiene una sola hoja, nombrada a partir del nombre del archivo de origen y recortada a 31 caracteres, sin estilos, sin fórmulas y sin anchos. Y si los datos de partida vienen anidados, se aplanan: cada hoja del árbol se convierte en una columna cuyo nombre es la ruta con puntos, con los índices de los arrays como tramos de esa ruta.

Dos límites distintos según a dónde vaya

Las conversiones a CSV, TSV, JSON, NDJSON, SQL y Parquet ocurren enteras dentro del navegador: el libro no se sube a ninguna parte y el tope es de 100 MB por archivo. Las conversiones a ODS y a PDF las hace LibreOffice en un contenedor nuestro, así que ahí el archivo sí viaja, el tope baja a 25 MB y cuentan para el cupo de cien conversiones de servidor por visitante y día.

Es la misma extensión y son dos historias distintas, y esta página prefiere decirlo con los números delante a resolverlo con un «casi todo se queda en tu equipo». En el sitio entero son 439 combinaciones que no salen del navegador frente a 89 que sí, y la ficha de cada conversión dice cuál de las dos es.

Buen formato de trabajo, mal formato de intercambio

Para una persona, XLSX es excelente: los tipos están declarados, las fechas siguen siendo fechas, los números largos conservan su formato y el archivo lleva su propia estructura, así que no hay que adivinar nada al abrirlo. Para mandarle una hoja a un compañero es mejor que CSV siempre.

Para un programa pesa más de lo que el trabajo suele pedir. Leerlo significa descomprimir un paquete y analizar varios documentos XML con una biblioteca, mientras que CSV no necesita biblioteca ninguna y se procesa en flujo desde un archivo mayor que la memoria disponible. Ese es el reparto honesto: XLSX cuando lo abre una persona, CSV cuando lo lee una máquina.

Los datos, en un solo sitio

Identificadores y procedencia del formato XLSX.
Extensión.xlsx
Tipo de medioapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Publicado porMicrosoft
Primera publicación2007
EspecificaciónECMA-376