
Si alguna vez necesitaste subir datos de hojas de cálculo a una aplicación web, construir una API REST o migrar datos a una base de datos NoSQL, probablemente te hayas encontrado con un problema común: Excel no proporciona una forma integrada de guardar datos como JSON.
Afortunadamente, existen varias formas de exportar Excel a JSON, desde conversores en línea rápidos hasta soluciones programáticas en Python. El mejor método depende del tamaño de tu archivo, los requisitos de seguridad y si necesitas preservar estructuras de libro de trabajo como múltiples hojas de cálculo o resultados de fórmulas.
En esta guía, compararemos los enfoques más prácticos y te ayudaremos a elegir la solución adecuada para tu escenario.
Navegación Rápida
- ¿Por qué exportar Excel a JSON?
- ¿Cómo se ven los datos de Excel en JSON?
- Método 1: Exportar Excel a JSON en línea
- Método 2: Exportar Excel a JSON en Python con Pandas
- Método 3: Exportar Excel a JSON en Python con Spire.XLS
- Desafíos comunes al convertir Excel a JSON
- ¿Qué método deberías elegir?
- Preguntas frecuentes
¿Por qué exportar Excel a JSON?
Excel es la herramienta más utilizada para almacenar datos estructurados, pero las aplicaciones modernas se comunican en JSON. Convertir entre estos formatos es esencial siempre que los datos de una hoja de cálculo necesiten moverse a un contexto web.
Los casos de uso comunes incluyen:
- Enviar datos de hojas de cálculo a aplicaciones web
- Importar datos a APIs REST
- Trabajar con frameworks de JavaScript como React, Vue o Angular
- Migrar datos a bases de datos NoSQL como MongoDB
- Intercambiar datos entre sistemas en pipelines de integración
Excel no tiene una opción nativa de "Guardar como JSON", por lo que necesitas una herramienta o biblioteca externa para salvar esta brecha.
¿Cómo se ven los datos de Excel en JSON?
Las filas de Excel generalmente se convierten en objetos JSON, mientras que los encabezados de columna se convierten en claves de objeto.
Datos de Excel:

Salida JSON:
[
{"ID": 1, "Name": "Alice", "Department": "HR"},
{"ID": 2, "Name": "Bob", "Department": "Engineering"}
]
Cada fila se convierte en un objeto JSON, cada encabezado de columna se convierte en una clave y toda la hoja de cálculo se convierte en un array. Tanto los archivos XLS como XLSX siguen el mismo patrón de mapeo.
Método 1: Exportar Excel a JSON en línea
Los conversores en línea de Excel a JSON proporcionan la solución más rápida para conversiones únicas sin necesidad de instalar software ni conocimientos de programación.
Pasos para convertir Excel a JSON en línea
-
Cargar el archivo Excel: Selecciona tu archivo .xlsx o .xls desde el almacenamiento local. La mayoría de las plataformas admiten arrastrar y soltar.
-
Configurar opciones: Especifica si deseas incluir encabezados, seleccionar hojas de cálculo específicas o personalizar el formato de salida.
-
Convertir y descargar: El servidor procesa tu archivo y genera la salida JSON. Recupera el archivo convertido o copia el resultado.
Conversores recomendados de Excel a JSON en línea
Diferentes herramientas destacan en diferentes escenarios:
| Herramienta | Mejor para | Límite de tamaño de archivo | Características especiales |
|---|---|---|---|
| TableConvert | Estructuras JSON basadas en tablas | 10MB | Formato JSON personalizado, objetos anidados |
| Data Formatter Pro | Conversión rápida en el navegador | 5MB | Conversión en el lado del navegador, sin necesidad de carga |
| JSON Editor Online | Edición visual después de la conversión | 5MB | Validador y formateador JSON incorporado |
Ventajas y limitaciones
Ventajas:
- No requiere instalación — acceso desde cualquier navegador
- Rápido para archivos pequeños de menos de 5 MB
- Fácil de usar para principiantes con interfaces gráficas
Limitaciones:
- Límites de tamaño de archivo: La mayoría de los conversores gratuitos restringen las cargas a 5-10 MB
- Preocupaciones de privacidad: Cargar datos comerciales a servidores externos introduce riesgos de cumplimiento
- Manejo de fórmulas: Los conversores en línea exportan los resultados de las fórmulas como valores estáticos
- Múltiples hojas de cálculo: Muchas herramientas exportan solo la hoja de cálculo activa o pierden la estructura de la hoja
Los conversores en línea funcionan bien para conversiones rápidas y no sensibles. Para cualquier cosa que involucre archivos grandes, datos confidenciales u hojas de cálculo complejas, necesitas una solución programática.
Método 2: Exportar Excel a JSON en Python con Pandas
Pandas es la biblioteca de análisis de datos más popular de Python, que ofrece una conversión sencilla de Excel a JSON a través de su API de DataFrame. Este método es adecuado para científicos de datos y analistas que ya utilizan Pandas para la manipulación de datos.
Instalar Pandas y dependencias
pip install pandas openpyxl
Para archivos .xls heredados, también instala xlrd:
pip install xlrd
Leer Excel y exportar JSON
import pandas as pd
# Cargar archivo Excel en DataFrame
df = pd.read_excel("sales_report.xlsx")
# Exportar DataFrame a JSON
df.to_json(
"sales_report.json",
orient="records",
indent=4
)
print("Datos de Excel exportados a JSON con éxito")
A continuación, se muestra un ejemplo de la hoja de cálculo de Excel y la salida JSON:

Parámetros clave:
-
orient="records": Estructura la salida como un array de objetos (el formato más común) -
indent=4: Formatea el JSON con sangría de 4 espacios
Comprender las opciones de salida JSON
Pandas proporciona múltiples orientaciones de salida a través del parámetro orient:
orient="records" (Recomendado para APIs):
[
{"ID": 1, "Name": "Alice", "Department": "HR"},
{"ID": 2, "Name": "Bob", "Department": "Engineering"}
]
orient="index":
{
"0": {"ID": 1, "Name": "Alice", "Department": "HR"},
"1": {"ID": 2, "Name": "Bob", "Department": "Engineering"}
}
orient="split":
{
"columns": ["ID", "Name", "Department"],
"index": [0, 1],
"data": [[1, "Alice", "HR"], [2, "Bob", "Engineering"]]
}
La orientación records es el formato más compatible para APIs REST y aplicaciones JavaScript.
Manejo de hojas de cálculo específicas
import pandas as pd
# Leer hoja de cálculo específica por nombre
df = pd.read_excel("workbook.xlsx", sheet_name="Q4_Sales")
# Leer hoja de cálculo específica por índice (basado en 0)
df = pd.read_excel("workbook.xlsx", sheet_name=0)
df.to_json("q4_sales.json", orient="records", indent=4)
Pandas destaca en el análisis de datos donde necesitas filtrar, agregar o transformar datos antes de exportar. Sin embargo, carga archivos completos en memoria y no puede preservar la lógica de las fórmulas, lo que lo hace menos adecuado para archivos grandes o escenarios empresariales.
La conversión de Excel a JSON es a menudo solo un paso en un flujo de trabajo de datos. Si necesitas importar datos JSON de nuevo a hojas de cálculo, consulta nuestro tutorial sobre cómo convertir JSON a Excel para una solución completa de intercambio de datos bidireccional.
Método 3: Exportar Excel a JSON en Python con Spire.XLS
Spire.XLS para Python proporciona una biblioteca profesional de procesamiento de Excel diseñada para escenarios donde Pandas se queda corto. Maneja estructuras de libro de trabajo complejas, preserva los cálculos de fórmulas y procesa archivos grandes de manera eficiente sin cargar conjuntos de datos completos en memoria.
Instalar Spire.XLS para Python
pip install Spire.XLS
Exportar datos de Excel a JSON
from spire.xls import Workbook
import json
# Crear instancia de libro de trabajo
workbook = Workbook()
workbook.LoadFromFile("sales_data.xlsx")
# Obtener la primera hoja de cálculo
sheet = workbook.Worksheets[0]
# Extraer datos en formato estructurado
data = []
headers = []
# Leer encabezados de la primera fila
for col in range(sheet.AllocatedRange.Columns.Count):
cell = sheet.AllocatedRange.Rows[0].Cells[col]
headers.append(cell.Value)
# Leer filas de datos
for row_idx in range(1, sheet.AllocatedRange.Rows.Count):
row_data = {}
row = sheet.AllocatedRange.Rows[row_idx]
for col_idx in range(len(headers)):
cell = row.Cells[col_idx]
row_data[headers[col_idx]] = cell.Value
data.append(row_data)
# Exportar a archivo JSON
with open("sales_data.json", "w", encoding="utf-8") as f:
json.dump(data, f, indent=4, ensure_ascii=False)
print(f"Se exportaron {len(data)} registros a JSON")
workbook.Dispose()
El resultado de la conversión se muestra a continuación:

Puntos clave
-
Cargar Libro de Trabajo: Usa
Workbook.LoadFromFile()para cargar el archivo Excel en memoria. Este método admite formatos XLS y XLSX. -
Acceder a Hoja de Cálculo: Recupera una hoja de cálculo específica usando
workbook.Worksheets[index], donde el índice 0 se refiere a la primera hoja. -
Extraer Encabezados: Itera a través de la primera fila del rango asignado (
sheet.AllocatedRange.Rows[0]) para recopilar los encabezados de columna, que servirán como claves de objeto JSON. -
Leer Filas de Datos: Recorre las filas restantes (comenzando desde el índice 1) y extrae los valores de las celdas. Para cada fila, crea un diccionario que mapee los encabezados a los valores de las celdas.
-
Exportar a JSON: Usa la función incorporada
json.dump()de Python para escribir la estructura de datos en un archivo JSON con formato adecuado (indent=4) y soporte Unicode (ensure_ascii=False).
JSON no es el único formato utilizado para el intercambio de datos. Si necesitas un formato tabular más simple para informes o integración de sistemas, consulta nuestra guía sobre cómo convertir Excel a CSV en Python.
Exportar múltiples hojas de cálculo a JSON
Una de las ventajas clave de Spire.XLS es el manejo de libros de trabajo de varias hojas preservando la estructura:
from spire.xls import Workbook
import json
workbook = Workbook()
workbook.LoadFromFile("quarterly_reports.xlsx")
workbook_data = {}
for sheet_index in range(workbook.Worksheets.Count):
sheet = workbook.Worksheets[sheet_index]
sheet_name = sheet.Name
sheet_data = []
headers = []
last_row = sheet.LastRow
last_col = sheet.LastColumn
if last_row > 0 and last_col > 0:
# Leer encabezados
for col in range(1, last_col + 1):
cell_value = sheet.Range[1, col].Value
headers.append(cell_value if cell_value else f"Column{col}")
# Leer filas de datos
for row in range(2, last_row + 1):
row_data = {}
has_data = False
for col in range(1, last_col + 1):
cell = sheet.Range[row, col]
value = cell.Value
# Manejar celdas con fórmulas - exportar resultados calculados
if cell.HasFormula:
value = cell.FormulaValue
row_data[headers[col - 1]] = value
if value is not None and str(value).strip():
has_data = True
if has_data:
sheet_data.append(row_data)
workbook_data[sheet_name] = sheet_data
print(f"Procesado: {sheet_name} ({len(sheet_data)} filas)")
with open("quarterly_reports.json", "w", encoding="utf-8") as f:
json.dump(workbook_data, f, indent=4, ensure_ascii=False)
print(f"Se exportaron {workbook.Worksheets.Count} hojas de cálculo a JSON")
workbook.Dispose()
Estructura de salida:
{
"Q1_Sales": [
{"Product": "Widget A", "Revenue": 15000, "Units": 500},
{"Product": "Widget B", "Revenue": 22000, "Units": 730}
],
"Q2_Sales": [
{"Product": "Widget A", "Revenue": 18000, "Units": 600},
{"Product": "Widget B", "Revenue": 25000, "Units": 830}
]
}
Beneficios de usar Spire.XLS
- Preservar la estructura del libro de trabajo: Mantener la organización de las hojas de cálculo en la salida JSON
- Manejar fórmulas correctamente: Exportar valores calculados de celdas con fórmulas
- Procesamiento eficiente de memoria: Manejar libros de trabajo grandes sin cargar archivos completos en memoria
- Sin dependencia de Excel: Procesar archivos sin necesidad de instalar Microsoft Excel
- Multiplataforma: Ejecutar en Windows, Linux y macOS
Comparación de Pandas vs Spire.XLS
| Característica | Pandas | Spire.XLS |
|---|---|---|
| Código Abierto | ✓ | ✗ |
| Análisis de Datos | ✓ | ✓ |
| Resultados de Fórmulas | Limitado | ✓ |
| Múltiples Hojas de Cálculo | Básico | ✓ |
| Automatización Empresarial | Limitado | ✓ |
| Eficiencia de Memoria | Moderado | ✓ |
| Soporte para Archivos Grandes | Limitado | ✓ |
Para sistemas que requieren intercambio de datos jerárquico o basado en esquemas, también puedes aprender cómo convertir Excel a XML en Python.
Desafíos comunes al convertir Excel a JSON
Múltiples hojas de cálculo
Los libros de trabajo a menudo contienen múltiples hojas de cálculo relacionadas. Exportar todas las hojas como un solo array plano pierde la estructura organizativa. Usa una biblioteca como Spire.XLS para preservar los nombres de las hojas de cálculo como claves de nivel superior en tu salida JSON.
Celdas con fórmulas
Las fórmulas de Excel calculan valores dinámicamente. Al exportar a JSON, generalmente deseas el resultado calculado, no la cadena de la fórmula. Spire.XLS proporciona la propiedad FormulaValue para exportar valores calculados, mientras que Pandas lee los valores mostrados por defecto.
Formato de fecha
Excel almacena las fechas como fechas seriales numéricas. Sin un manejo explícito, las fechas pueden exportarse como números sin sentido como 45662 en lugar de "2026-05-01". Convierte las columnas de fecha a cadenas ISO 8601 para la compatibilidad con JSON.
Celdas vacías y valores nulos
Las celdas vacías pueden representarse como null, omitirse por completo o exportarse como cadenas vacías. Usa null para valores faltantes y cadenas vacías para celdas explícitamente vacías para preservar la intención de los datos.
¿Qué método deberías elegir?
| Escenario | Método recomendado | Razón |
|---|---|---|
| Conversión única rápida | Convector en línea | Sin configuración, más rápido para uso ocasional |
| Flujos de trabajo de análisis de datos | Pandas | Se integra con pipelines de análisis |
| Libros de trabajo complejos con múltiples hojas | Spire.XLS | Preserva la estructura, maneja fórmulas |
| Archivos grandes (>100 MB) | Spire.XLS | Procesamiento eficiente de memoria |
| Datos sensibles/confidenciales | Spire.XLS (local) | Sin transmisión a servidores externos |
Preguntas frecuentes
¿Puede Excel guardar directamente como JSON?
No. El cuadro de diálogo "Guardar como" de Excel admite XLSX, XLS, CSV, PDF y XML, pero no JSON. Necesitas un conversor en línea, una biblioteca de Python o un script personalizado para exportar datos de Excel a JSON.
¿Cómo exporto datos de Excel a un archivo JSON?
Elige tu herramienta, carga el archivo Excel, extrae los datos de la hoja de cálculo, transforma las filas en objetos JSON con los encabezados de columna como claves y escribe la salida en un archivo .json.
Con Pandas:
import pandas as pd
df = pd.read_excel("data.xlsx")
df.to_json("data.json", orient="records", indent=4)
¿Cuál es la mejor biblioteca de Python para convertir Excel a JSON?
- Pandas: Mejor para flujos de trabajo de análisis de datos con transformaciones potentes, pero carga archivos completos en memoria y no puede preservar fórmulas.
- Spire.XLS: Mejor para escenarios empresariales con archivos grandes, múltiples hojas de cálculo y manejo de fórmulas.
¿Cómo puedo exportar múltiples hojas de cálculo a JSON?
Usa Spire.XLS para iterar a través de las hojas de cálculo y organizarlas en un diccionario con los nombres de las hojas como claves:
from spire.xls import Workbook
import json
workbook = Workbook()
workbook.LoadFromFile("multi_sheet.xlsx")
result = {}
for sheet in workbook.Worksheets:
sheet_data = [] # Extraer datos de la hoja
# ... lógica de extracción ...
result[sheet.Name] = sheet_data
with open("output.json", "w") as f:
json.dump(result, f, indent=4)
¿Se pueden preservar las fórmulas durante la conversión de Excel a JSON?
Las fórmulas en sí mismas no se pueden preservar en JSON, ya que JSON es un formato de datos estático. Sin embargo, puedes exportar los resultados calculados de las fórmulas. Usa la propiedad FormulaValue de Spire.XLS para obtener valores calculados en lugar de cadenas de fórmulas.
¿Cómo manejo archivos grandes de Excel al exportar a JSON?
Evita Pandas para archivos grandes: carga todo en memoria. Usa Spire.XLS para acceso celda por celda eficiente en memoria. Para conjuntos de datos muy grandes, considera el formato JSON delimitado por líneas (JSONL), donde cada línea es un objeto JSON separado, lo que permite el procesamiento en streaming.
Conclusión
Exportar Excel a JSON cierra la brecha entre los datos de hojas de cálculo y las aplicaciones modernas. Para conversiones rápidas, las herramientas en línea hacen el trabajo sin ninguna configuración. Cuando necesitas capacidades de análisis de datos, Pandas proporciona transformaciones potentes. Para escenarios empresariales con archivos grandes, múltiples hojas de cálculo o manejo de fórmulas, Spire.XLS ofrece el control y la precisión que necesitas. Elige según el tamaño de tu archivo, la complejidad y los requisitos de tu flujo de trabajo.
Lectura adicional: