Convertidor de Excel a JSON

Sube un archivo XLSX, XLS o CSV y obtén JSON limpio. Elige la hoja, el formato de salida y cómo tratar la fila de encabezados. Todo ocurre en tu navegador: no se sube nada.

Admite .xlsx, .xls y .csv hasta 10 MB. Las fechas se conservan como cadenas ISO.

Elige una hoja de cálculo arriba para ver aquí el resultado en JSON.

¿Necesitas el sentido contrario? Convertir JSON a Excel →

Cómo convertir Excel a JSON

  1. Pulsa Elegir hoja de cálculo y selecciona un archivo .xlsx, .xls o .csv.
  2. Si el libro tiene varias hojas, elige la que quieras en el desplegable.
  3. Elige el formato de salida: array de objetos para la mayoría de los casos, array de arrays si quieres conservar la cuadrícula tal cual.
  4. Indica si la primera fila es el encabezado, si hay que omitir las filas vacías y si quieres el JSON formateado.
  5. Pulsa Copiar o Descargar .json.

No se sube nada: el archivo se procesa en tu navegador, así que puedes usarlo igual con exportaciones confidenciales que con datos de prueba.

XLSX, XLS y CSV a JSON

Los tres formatos pasan por el mismo analizador. XLSX a JSON es el caso habitual: el formato moderno de Excel, con soporte completo para varias hojas. XLS a JSON funciona con archivos antiguos de Excel 2003 y anteriores. CSV a JSON se trata como un libro de una sola hoja, así que se aplican las mismas opciones de encabezado y formato de salida.

De Google Sheets a JSON

No se puede subir directamente desde Google Sheets, pero el rodeo es rápido: en Sheets elige Archivo → Descargar → Microsoft Excel (.xlsx) y sube ese archivo aquí. Si lo que quieres es lo contrario —meter JSON dentro de Sheets o mantener una hoja sincronizada con una API— necesitarás Apps Script o un complemento, porque Sheets no importa JSON de serie.

¿Excel puede abrir archivos JSON directamente?

No. Hacer doble clic en un archivo .json no lo abre en Excel, y cambiarle la extensión tampoco sirve. Excel necesita que los datos se conviertan antes en una cuadrícula, ya sea con Power Query o con un convertidor como este.

Qué formato de salida elegir

La misma hoja de cálculo puede convertirse en dos documentos JSON bastante distintos, y cuál te conviene depende únicamente de qué va a leerlo después.

Array de objetos usa la fila de encabezados como claves:

[
  { "nombre": "Alicia", "rol": "admin", "activo": "true" },
  { "nombre": "Bruno", "rol": "editor", "activo": "false" }
]

Es lo que esperan casi todas las APIs, los importadores de bases de datos y las aplicaciones JavaScript. Elígelo salvo que tengas un motivo concreto para no hacerlo.

Array de arrays conserva la cuadrícula tal cual, encabezado incluido:

[
  ["nombre", "rol", "activo"],
  ["Alicia", "admin", "true"],
  ["Bruno", "editor", "false"]
]

Útil cuando importa el orden de las columnas, cuando la hoja no tiene fila de encabezados o cuando vas a pasarle los datos a una librería de gráficos que espera posiciones.

Por qué todos los valores salen como texto

Verás que los números y los booleanos aparecen entrecomillados. Es intencionado. Excel guarda bastante ambigüedad en las celdas: un valor que se muestra como 00721 puede ser texto, un número con formato de ceros a la izquierda o un formato personalizado. Convertirlo de forma agresiva destruiría en silencio referencias de producto, códigos postales y números de cuenta.

Leer las celdas como texto con formato conserva exactamente lo que ves en la hoja. Si necesitas números reales, conviértelos donde consumas los datos: así decides tú qué columnas son realmente numéricas.

const filas = datos.map(r => ({
  ...r,
  cantidad: Number(r.cantidad),
  activo: r.activo === "true"
}));

Lo que suele dar problemas

Celdas combinadas

Una celda combinada guarda su valor solo en la posición superior izquierda; las demás celdas de la combinación están realmente vacías. En el JSON obtendrás un campo con valor y varios nulos. Separa las celdas antes de exportar si necesitas que el valor se repita en cada fila.

Fórmulas

Obtienes el resultado calculado, no la fórmula, que es casi siempre lo que quieres. Si una fórmula nunca se ha recalculado —algo habitual en archivos generados por scripts en vez de por Excel— el valor almacenado puede estar desactualizado o faltar. Abre y vuelve a guardar el archivo en Excel para refrescarlo.

Encabezados duplicados

Dos columnas llamadas Nombre no pueden ser dos claves del mismo objeto: JSON exige claves únicas, así que una gana en silencio. Renombra las columnas en la hoja o usa la salida de array de arrays, que conserva todas las columnas.

Fechas

Excel guarda las fechas como números contados desde 1900. Sin tratarlas, se exportarían como valores del tipo 45231. Este convertidor las interpreta como fechas y genera cadenas legibles.

Filas y columnas ocultas

Los datos ocultos siguen siendo datos: aparecen en el resultado. Si la hoja tiene filtros aplicados, las filas que el filtro esconde también se incluyen. Borra en lugar de ocultar aquello que no quieras exportar.

Hacerlo con código

Para una tarea que vas a repetir, en Python son tres líneas:

import pandas as pd

df = pd.read_excel("datos.xlsx", dtype=str)
df.to_json("datos.json", orient="records", indent=2, force_ascii=False)

dtype=str es el equivalente al comportamiento de conservar el texto que se describe arriba, y force_ascii=False mantiene legibles las tildes y la eñe.

Preguntas frecuentes

¿Se sube mi hoja de cálculo a algún sitio?

No. El archivo se lee con la File API del navegador y se procesa en memoria con SheetJS, que viene incluido en esta página. Ninguna petición de red lleva tus datos. Puedes consultar nuestra política de privacidad.

¿Admite varias hojas?

Todas las hojas del libro aparecen en el desplegable y conviertes una cada vez. Para juntar varias en un solo documento, convierte cada una y une los arrays.

¿Y las hojas de cálculo muy grandes?

Aquí el límite son 10 MB. Por encima de eso, la memoria del navegador es la restricción, y conviene procesar el archivo con un script que lo lea por partes en lugar de cargarlo entero.

¿Funciona con Google Sheets?

Sí. En Google Sheets elige Archivo → Descargar → Microsoft Excel (.xlsx) y sube el resultado aquí.