Excel a JSON

Convierte archivos Excel a JSON

Admite libros de hasta 150 000 filas entre todas las hojas (archivos de hasta 90 MB). La conversión se hace en tu navegador; el botón «Cancelar» la detiene.

Haz clic o arrastra un archivo de hoja de cálculo o CSV aquí (Excel, ODS, Numbers…)Elige un archivo de hoja de cálculo o CSV (Excel, ODS, Numbers…)

Acerca de Excel a JSON

Excel a JSON lee un libro (Excel .xlsx, .xlsm, .xlsb o .xls, OpenDocument .ods, Apple Numbers, WPS .et, Microsoft Works .wks o .xlr, Lotus 1-2-3 o Quattro Pro) o un archivo .csv, y escribe un objeto JSON cuyas claves son los nombres de las hojas, incluidas las ocultas. Cada hoja se convierte en un array de objetos de fila cuyas claves vienen de la primera fila de la hoja, y todas las filas tienen las mismas claves: una celda vacía da null. Las celdas de fecha pasan a texto ISO 8601, un número escrito en una celda con formato Texto (un código postal como 02134) sigue siendo una cadena, las fórmulas dan su resultado guardado y un error de fórmula como #N/A da null. Los emoji se conservan, también en archivos escritos con Python (pandas, openpyxl). Un archivo .csv se lee como texto sin formato, así que cada valor sigue siendo una cadena y su hoja se llama Sheet1. La conversión empieza cuando eliges el archivo, en tu navegador.

Ejemplo

Un libro con dos hojas: Orders (una celda de fecha, una celda de fecha y hora, códigos postales en celdas con formato Texto, un porcentaje, un error de fórmula #N/A, dos columnas con el encabezado Note) y Rates (años como encabezados). Este es el JSON que devuelve la herramienta:

Libro

Hoja «Orders»:
Order | Customer | Ordered | Zip | Discount | Note | Note
1001 | Ann Lee | 2024-01-15 (celda de fecha) | 02134 (celda de texto) | 10 % | (vacía) | gift
1002 | Bob Ruiz | 2024-02-29 13:45 (celda de fecha) | 94110 (celda de texto) | =BUSCARV(…) → #N/A | rush | (vacía)

Hoja «Rates»:
Region | 2023 | 2024
West | 1.25 | 1.5

JSON

{
  "Orders": [
    {
      "Order": 1001,
      "Customer": "Ann Lee",
      "Ordered": "2024-01-15",
      "Zip": "02134",
      "Discount": 0.1,
      "Note": null,
      "Note_1": "gift"
    },
    {
      "Order": 1002,
      "Customer": "Bob Ruiz",
      "Ordered": "2024-02-29T13:45:00",
      "Zip": "94110",
      "Discount": null,
      "Note": "rush",
      "Note_1": null
    }
  ],
  "Rates": [
    {
      "2023": 1.25,
      "2024": 1.5,
      "Region": "West"
    }
  ]
}

Cómo convertir Excel a JSON

  1. 1Elige el libro o el archivo .csv en la zona de subida (.xlsx, .xls, .ods, .numbers, .csv y los demás formatos indicados más abajo); la conversión empieza sola.
  2. 2Si el libro tiene varias hojas, sus nombres aparecen mientras se lee, y «Cancelar» detiene el proceso.
  3. 3Haz clic en «Descargar» para guardar converted.json, con una sangría de dos espacios.

Formatos y límites

Entrada
Excel (XLSX, XLSM, XLSB, XLS), OpenDocument (ODS), Apple Numbers (NUMBERS, NUMBERS.ZIP), WPS (ET), Microsoft Works (WKS, XLR), Lotus 1-2-3 (WKS, WK1, WK3, 123), Quattro Pro (QPW, WB1, WQ1), CSV, TSV o TXT separado por tabuladores
Salida
Objeto JSON con un array de objetos de fila por hoja
En una computadora
hasta 90 MB y 150 000 filas, entre todas las hojas
En teléfonos y tabletas
hasta 30 MB y 50 000 filas, entre todas las hojas

Usos habituales

Cargar datos iniciales en una base de datos o una API simulada
Un desarrollador recibe una lista de productos como libro y la convierte en converted.json, un array por hoja, listo para un script de carga, con cada fecha ya escrita como texto ISO 8601.
Alimentar una página web desde una hoja de cálculo
Un equipo mantiene los horarios de una tienda o una lista de precios en un libro compartido; el JSON da a un sitio estático un objeto por fila, con las mismas claves en cada fila aunque una celda haya quedado en blanco.
Revisar una exportación antes de importarla
Antes de importar una exportación de un CRM o de una tienda en línea, convertirla muestra las claves y los valores exactos que recibirá un script: encabezados repetidos renombrados name_1, celdas vacías como null y fechas como texto en lugar de números de serie.

Qué herramienta elegir

  • Excel a CSV: un archivo CSV por hoja, en un ZIP cuando hay varias, con elección del separador; los porcentajes y los importes en dólares se escriben como los muestra Excel, mientras que esta herramienta escribe el número guardado.
  • CSV a JSON: para un archivo .csv que quieres con tipos: las columnas formadas solo por números pasan a ser números JSON, y también puede escribir arrays de arrays o JSON Lines. Aquí un .csv se lee como texto y cada valor sigue siendo una cadena.
  • JSON a CSV: el camino inverso, de JSON a un archivo CSV con una fila de encabezado, con los objetos anidados aplanados en nombres de columna con puntos.

Dónde se procesa tu archivo

Tu hoja de cálculo se lee en tu navegador con la biblioteca SheetJS y no se sube. Lo que puede llegarnos es un informe de error: el texto del error sin los nombres de archivo ni el texto citado, el nombre de la herramienta y el nombre y la versión de tu navegador.

Preguntas frecuentes

¿Se incluyen las celdas vacías?

Sí, como null. Todas las filas de una hoja tienen las mismas claves, así que el código que lee una propiedad Note encuentra null en lugar de una clave ausente. Las filas totalmente vacías se omiten.

¿Las fechas se convierten en texto?

Sí, a ISO 8601: 2024-01-15, o 2024-02-29T13:45:00 cuando la celda tiene hora, sin añadir zona horaria. Sin este paso, una fecha de Excel saldría como un número de serie, por ejemplo 45306.

¿Puedo elegir qué hojas convertir?

No. Se convierten todas las hojas, incluidas las ocultas, cada una con su propio nombre en el JSON. Borra después los arrays que no necesites, o guarda antes las hojas que quieras en un libro aparte.

¿Se conservan los encabezados de columna repetidos?

Sí. Cuando dos columnas tienen el mismo encabezado, por ejemplo name, la segunda pasa a ser name_1 en cada objeto de fila, así que no se sobrescribe ningún valor.

¿La fila de encabezado tiene que ser la primera fila?

Sí. La primera fila del área usada de la hoja da las claves, así que un título como Informe de ventas 2024 escrito encima de la tabla se convierte en una clave y los encabezados reales pasan a ser una fila de datos. Borra las filas que haya encima de los encabezados antes de convertir.

¿Qué pasa con una columna cuya celda de encabezado está vacía?

Se conserva con la clave __EMPTY, y luego __EMPTY_1 y __EMPTY_2 para las siguientes, así que no se pierde ningún valor. Escribe antes un encabezado en esa celda si tu código necesita un nombre con sentido.

¿Los porcentajes y los importes se conservan tal como se muestran?

No, se escribe el número guardado: una celda que muestra 50 % da 0.5, y una que muestra 9,99 € da 9.99. Las celdas VERDADERO y FALSO pasan a ser true y false, y un número escrito en una celda con formato Texto, como 007, sigue siendo una cadena.

¿Qué pasa con las celdas combinadas?

El valor va a la primera fila del área combinada, y las demás filas que abarca reciben null. Separa antes las celdas y rellena hacia abajo en Excel si cada fila necesita el valor.

¿Qué dan los errores de fórmula como #N/A o #DIV/0!?

null, igual que una celda vacía, así que el texto del error no aparece en el JSON. Una fórmula guardada sin su resultado, como en un archivo escrito con openpyxl de Python que aún no se ha abierto y guardado en Excel, también da null. Busca # en la hoja antes de convertir si un error no debe pasar desapercibido.

¿Por qué las columnas con los encabezados 2023 y 2024 aparecen primero en cada objeto?

JavaScript pone primero las claves que son números enteros, en orden ascendente, sea cual sea el orden de las columnas: Region | 2023 | 2024 se escribe "2023", "2024", "Region". Los valores siguen con sus claves correctas; solo cambia su orden en el archivo. Cambia el nombre de esos encabezados, por ejemplo a Ejercicio2024, si un programa depende del orden de las claves.

¿Un encabezado como user.name crea objetos anidados?

No. Cada clave es el texto del encabezado tal como se escribió, así que user.name y user.age son dos claves simples del mismo objeto de fila. Los espacios también se conservan: un encabezado escrito como Name seguido de un espacio da la clave "Name ", que un código que busca Name no encontrará.

¿Se incluyen las hojas, filas y columnas ocultas?

Sí. Las hojas ocultas, las filas ocultas, las columnas ocultas y las filas ocultas por un filtro se convierten igual que las visibles. Bórralas antes en el libro si no deben estar en el JSON.

¿Qué da una hoja que solo tiene la fila de encabezado?

Un array vacío, como una hoja vacía: sin ninguna fila de datos debajo, los nombres de los encabezados no se escriben en ninguna parte del JSON.

¿Puedo obtener JSON minificado o un array de arrays?

No desde esta página: el archivo es siempre un objeto con un array por hoja, con una sangría de dos espacios. Pégalo en «Minificador JSON» para quitar los espacios. Para un array de arrays o JSON Lines, guarda la hoja con «Excel a CSV» y convierte ese archivo con «CSV a JSON».

¿Puedo convertir un archivo de Apple Numbers?

Sí. Un archivo .numbers de Numbers 2013 o posterior, uno más antiguo de Numbers ’08 o ’09, y un documento de Numbers guardado como carpeta, una vez comprimido en ZIP (Nombre.numbers.zip), se leen todos en tu navegador. Cada tabla se convierte en su propio array, con el nombre de su hoja. Cuando una hoja contiene varias tablas, un archivo de Numbers ’08 o ’09 las llama «hoja - tabla», y uno más reciente las llama hoja, hoja_1, etc.

¿Qué tamaño puede tener el archivo?

90 MB y 150 000 filas, contando todas las hojas, en una computadora; 30 MB y 50 000 filas en teléfonos y tabletas. Divide un libro más grande en varios archivos y conviértelos uno por uno.

Consejos y trucos

  • ✓Antes de convertir, mira la fila de encabezado: un espacio al final o un nombre repetido cambia las claves que verá tu código, y un año usado como encabezado lleva esa clave al principio.
  • ✓Para obtener archivos CSV en lugar de JSON, uno por hoja, usa «Excel a CSV».