ToolActToolAct

Convertidor de Excel a JSON

Sube un archivo Excel para convertir datos de hoja de cálculo a formato JSON

Arrastra el archivo Excel aquí, o haz clic para seleccionar

¿Qué es Excel a JSON?

Excel a JSON es una herramienta en línea de conversión de formato de datos que convierte datos de hojas de cálculo de Microsoft Excel (.xlsx/.xls) a formato JSON (Notación de Objetos JavaScript).

Excel es el software de hojas de cálculo más popular del mundo, ampliamente utilizado para almacenamiento de datos, análisis y generación de informes. JSON es el formato de intercambio de datos más utilizado en aplicaciones web modernas y APIs, conocido por su estructura clara y fácil análisis.

Con esta herramienta, puedes convertir rápidamente datos de hojas de cálculo de Excel en matrices JSON para usar en programación, análisis de datos y desarrollo web. Todo el procesamiento se realiza localmente en tu navegador, garantizando la seguridad de los datos.

Cómo usar

Cómo usar

  1. Haz clic en el área de carga o arrastra y suelta un archivo Excel (compatible con formatos .xlsx y .xls).
  2. Si hay varias hojas, selecciona la que deseas convertir en el menú desplegable.
  3. Elige si deseas usar la primera fila como nombres de campo de objetos JSON.
  4. Los datos JSON formateados se generarán automáticamente, listos para copiar.

Notas sobre hojas de cálculo

  • Verifica la hoja seleccionada, la fila de encabezado, las celdas combinadas, las filas vacías y los formatos de fecha antes de usar el JSON.
  • Las hojas de cálculo suelen mezclar el formato de visualización con los valores en bruto, así que comprueba los números y las fechas después de la conversión.

Casos de uso

Convertir una hoja de libro en JSON para desarrolloCarga un archivo .xlsx o .xls, elige la hoja de trabajo y conviértela en JSON resaltado para datos de prueba, datos iniciales, opciones desplegables, borradores de localización o ejemplos de API. El libro se lee y analiza completamente en el navegador mediante la biblioteca SheetJS, por lo que las hojas de clientes, recursos humanos o finanzas internas nunca salen del dispositivo durante la conversión.
Controlar si la primera fila se convierte en claves de objetosAlterna la opción de primera fila como encabezado para cambiar entre un array de objetos con claves por nombre de columna y una exportación tipo array indexada por posición de columna, luego usa los conteos de filas y campos para detectar columnas vacías inesperadas o selección de hoja incorrecta. Funciona bien como paso intermedio controlado antes de pegar la salida en tu destino real.
Mantener el análisis local para tareas de datos pequeñasLa página lee el libro en el navegador con SheetJS y copia la salida directamente. Es ideal para hojas revisables, no para archivos enormes, recálculo de fórmulas, macros, cachés de tablas dinámicas o lógica de libros protegidos. Haz una verificación rápida en el sistema destino antes de considerar el JSON como definitivo.
Detectar valores de fórmulas versus cadenas almacenadasSheetJS devuelve en el navegador el último valor en caché de una fórmula, por lo que una columna llena de totales calculados aparece como números simples en JSON, y las celdas con cachés desactualizados pueden diferir de lo que Excel muestra actualmente. Haz un escaneo rápido en busca de ceros inesperados o cadenas coincidentes antes de tratar la exportación como definitiva, y vuelve a guardar el libro si se añadieron fórmulas después del último guardado.
Verificar la fila de encabezado antes de que el esquema falleCuando la primera fila como encabezado está activa, nombres de columna duplicados o vacíos producen claves JSON inválidas y algunas claves pueden renombrarse automáticamente. Abre el JSON, busca 'undefined' o sufijos numéricos, y limpia la hoja de origen cuando las claves deban mantenerse estables en reimportaciones sucesivas, especialmente para interfaces TypeScript o generación de esquemas GraphQL.

Principio técnico

Los libros de trabajo .xlsx modernos son archivos SpreadsheetML definidos por ECMA-376 / ISO/IEC 29500 (el estándar Office Open XML): la extensión .xlsx es un contenedor ZIP cuyas entradas son documentos XML bajo xl/worksheets/sheetN.xml, con cadenas almacenadas en una tabla de cadenas compartidas xl/sharedStrings.xml y tipos de celda declarados por el atributo t (s = sharedString, n = número, b = booleano, str = cadena en línea, d = fecha en ISO 8601). La página lee el archivo subido con FileReader.readAsArrayBuffer y luego pasa el ArrayBuffer a SheetJS (xlsx). XLSX.read(buffer, {type: 'array'}) devuelve un objeto de libro de trabajo cuyo array SheetNames impulsa el selector de hojas, y XLSX.utils.sheet_to_json(sheet, options) recorre la cuadrícula de celdas para producir un array de objetos (con la fila de encabezado como claves) o un array de arrays cuando se pasa header: 1. El formato legacy .xls es el formato binario BIFF8 (Excel 97-2003), que SheetJS también decodifica a través del mismo punto de entrada read() pero con type: 'binary' para FileReader.readAsBinaryString o 'array' cuando se lee como bytes. Los valores de fecha de celda en ambos formatos se almacenan como números de serie (días desde la época de 1900 en Excel, con el error histórico de año bisiesto 1900-02-29 que desplaza las fechas anteriores a 1900-03-01 un día, o días desde 1904-01-01 cuando el indicador date1904 del libro está activado en Excel para Mac). La conversión a un Date de JavaScript es (serie - 25569) * 86400 * 1000 milisegundos después de la época Unix para el sistema 1900 una vez tenido en cuenta el error de año bisiesto. Las fórmulas residen en el atributo f y SheetJS reporta su último resultado cacheado en v; si el libro fue guardado por una herramienta que no recalculó (por ejemplo, algunas exportaciones mediante script), v puede estar ausente o desactualizado. Cuando la primera fila se usa como encabezado, las celdas de encabezado duplicadas o vacías fuerzan a SheetJS a omitir o renombrar automáticamente las claves (por ejemplo, __EMPTY, __EMPTY_1), lo que rompe los contratos JSON posteriores. Los rangos de celdas combinadas (declarados en worksheet/mergeCells) exponen el valor solo en el ancla superior izquierda y emiten undefined en las celdas de cola combinadas, por lo que una fila de título combinada produce un registro poblado seguido de N - 1 registros dispersos. Para libros de trabajo de decenas de megabytes, la ruta síncrona XLSX.read() puede bloquear el hilo de UI; la alternativa de streaming es mover el análisis a un Web Worker para que el hilo principal se mantenga reactivo.

  • .xlsx es un contenedor ZIP de XML (ECMA-376 / ISO/IEC 29500); .xls es el formato binario BIFF8; SheetJS XLSX.read(buffer, {type: 'array'}) maneja ambos mediante FileReader.readAsArrayBuffer.
  • Opciones de sheet_to_json: header: 1 devuelve array de arrays; header: 'A' usa las letras de columnas de la hoja; defval: null rellena celdas dispersas con null en lugar de eliminar la clave; raw: false aplica el formato de visualización de Excel.
  • El número de serie de fecha Excel es días desde 1900-01-01 (con el error de año bisiesto 1900-02-29; para el sistema de fechas Mac 1904, días desde 1904-01-01); ms de JS Date = (serie - 25569) * 86400000 después de la época Unix.
  • Las celdas de encabezado duplicadas o vacías se convierten en claves renombradas automáticamente (__EMPTY, __EMPTY_1) o colisionan silenciosamente; valida el JSON buscando estas cadenas antes de confiar en el esquema.
  • Los rangos de celdas combinadas (worksheet.mergeCells) exponen el valor solo en el ancla superior izquierda; las celdas de cola en la combinación son undefined, por lo que una fila de título combinada produce un registro con el valor y N-1 registros con campos vacíos.
  • Las celdas de fórmula almacenan la expresión en f y el último resultado cacheado en v; las herramientas que guardan sin recalcular dejan v desactualizado o ausente, y SheetJS devuelve v tal cual.
  • Mueve XLSX.read a un Web Worker para libros de trabajo de más de ~10 MB; la ruta de análisis síncrona bloquea requestAnimationFrame y puede congelar la pestaña durante varios segundos en hojas grandes.

Ejemplos

Hoja de empleados a array de objetos JSON

Filas Excel (hoja Staff):
id | name    | dept       | salary
1  | Alice   | Engineering| 8500
2  | Bob     | Sales      | 6200

Salida JSON:
[
  { "id": 1, "name": "Alice", "dept": "Engineering", "salary": 8500 },
  { "id": 2, "name": "Bob",   "dept": "Sales",       "salary": 6200 }
]

Libro con varias hojas (orders.xlsx)

Hojas del libro: ["Customers", "Orders", "Products"]
Seleccionar hoja: Orders
Primera fila usada como encabezados: order_id, customer_id, total, date

Resultado: 1.284 filas convertidas en objetos JSON
Las celdas vacías al final se convierten en null, no en cadena vacía

Celda de fecha de Excel a cadena ISO 8601

Celda A2 (formateada como Date en Excel): 46173  (número de serie de Excel)
Mostrado en Excel: 2026-06-01

Salida JSON:
{ "order_date": "2026-06-01T00:00:00.000Z" }

Nota: Excel almacena fechas como números de serie; esta herramienta las normaliza a cadenas ISO

Encabezados con espacios y caracteres chinos

Fila de encabezados: "Order No." | "客户姓名" | "金额 (USD)"

Las claves JSON se conservan literalmente:
{
  "Order No.": "A-1024",
  "客户姓名": "王小明",
  "金额 (USD)": 199.50
}

Preguntas frecuentes

¿Se sube mi archivo de Excel?

No. El archivo .xlsx, .xls o .csv se procesa en tu navegador con SheetJS. Los bytes nunca salen del dispositivo. Puedes confirmarlo en la pestaña Red mientras cargas un archivo.

¿Qué características de Excel sobreviven a la conversión?

Los valores de celda, las fechas (como cadenas ISO o números de serie de Excel según la opción), los números, los booleanos y el texto. Los gráficos, imágenes, formato condicional, fórmulas (se mantiene el valor cacheado, no la fórmula), comentarios y celdas combinadas se descartan o se simplifican.

¿Se convierten todas las hojas?

Solo se convierte la hoja seleccionada. Usa el desplegable de hojas para elegir cuál exportar. Si necesitas varias, conviértelas una por una.

¿Cómo se mapean las cabeceras y las filas a JSON?

Si activas 'primera fila como cabecera', el resultado es un array de objetos donde las celdas de cabecera son las claves. Si lo desactivas, será un array de arrays con los valores de las celdas. Las celdas vacías se convierten en null en la salida.

¿Cómo se gestionan las fechas?

Excel guarda las fechas como números de serie (días desde 1900). La página los convierte por defecto en cadenas ISO 8601 (2026-06-13). Cambia a 'raw' para conservar el número de serie, lo cual es útil si vas a reimportar a Excel después. Las celdas con solo hora se convierten en cadenas como 'T14:30:00'.

¿Y las fórmulas?

Las fórmulas no se evalúan; solo se usa el último valor calculado guardado por Excel. Si necesitas resultados frescos, abre el archivo en Excel, recalcula (F9), guarda y vuelve a subirlo.

¿Cuál es el límite de tamaño?

Lo limita la memoria del navegador. Los equipos de escritorio modernos manejan libros de hasta varios cientos de MB. Para archivos muy grandes (> 1 millón de filas), usa una herramienta de escritorio (pandas en Python, Power Query de Excel): el navegador se quedará sin memoria.