Excel a JSON
Los archivos de Excel cargan más que valores: celdas combinadas, varias hojas, fórmulas que se resuelven en un número pero se almacenan como una expresión, fechas que en realidad son un número de serie contado desde 1900. Este endpoint lee un archivo XLSX como lo haría una persona, hoja por hoja, y devuelve JSON estructurado con el valor real de cada celda, no sus particularidades de hoja de cálculo.
Esta tarea no está disponible ahora mismo, así que no se puede contratar. No se cobra nada por ella.
Cómo funciona y APIPor qué los archivos de Excel se resisten a un análisis ingenuo
Un archivo XLSX es, técnicamente, un paquete comprimido de documentos XML que describen hojas, estilos y un manifiesto del libro, razón por la cual escribir un analizador desde cero es una tarea mucho más grande de lo que parece. Más allá del formato en sí, las hojas de cálculo cargan hábitos humanos que confunden a los lectores automáticos: una cabecera que empieza en la fila tres porque alguien agregó un título encima, fechas guardadas como número de serie interno en vez de texto legible, fórmulas que hay que evaluar en lugar de leer literalmente, y celdas combinadas que desalinean por completo una lectura fila por fila.
Lo que la conversión realmente resuelve
Llame a POST /data/xlsx-to-json con su archivo y cada hoja se lee en su propia estructura JSON, con las cabeceras detectadas y usadas como nombres de campo, las fechas convertidas desde el número de serie interno de Excel a cadenas estándar y legibles, y las celdas con fórmulas devueltas como su valor calculado, no como el texto de la fórmula. Si su libro tiene varias hojas —un patrón común en exportaciones que separan resumen y detalle— cada una llega distinta en la respuesta en lugar de fusionarse o perderse.
Una breve nota sobre el origen del XLSX
La hoja de cálculo se remonta a los primeros días de la computación personal, y el formato XLSX llegó a mediados de los años dos mil como reemplazo basado en XML del antiguo formato binario XLS, cambiando un diseño compacto pero opaco por uno que, al menos en teoría, otras herramientas podían leer. En la práctica, esa apertura no hizo simple al XLSX, solo trasladó la complejidad de una especificación binaria a una XML verbosa, que es exactamente la capa que este endpoint absorbe por usted.
Quién recurre más a esto
Esto aparece constantemente en flujos donde el dato se origina fuera de sus propios sistemas: un cliente envía por correo una hoja de presupuesto, un portal gubernamental solo exporta XLSX, un equipo de finanzas mantiene un libro maestro que nadie quiere migrar. En lugar de pedirle a personas no técnicas que cambien cómo trabajan, la conversión ocurre de su lado, transformando su formato habitual en el JSON que su aplicación ya entiende.
Cómo encaja en la automatización
Como la tarea es asíncrona, encaja de forma natural donde un archivo XLSX llega de manera impredecible: un adjunto de correo procesado por una automatización de bandeja de entrada, un archivo dejado en una carpeta compartida, un formulario de carga en una herramienta interna. Recibe un task_id en el momento en que envía el archivo, y el JSON analizado, organizado por hoja, llega por webhook para que los pasos siguientes puedan empezar en cuanto esté listo.
Qué puede hacer con ella
Archivos de presupuesto enviados por clientes
Analice automáticamente presupuestos o proyecciones en XLSX enviados por correo por clientes y conviértalos en JSON que su sistema de finanzas puede ingerir sin captura manual.
Exportaciones de datos gubernamentales o institucionales
Convierta exportaciones XLSX de portales que solo ofrecen descarga en Excel en JSON usable dentro de un pipeline de datos moderno.
Procesamiento de libros con varias hojas
Lea un libro con hojas separadas por región o línea de producto y reciba cada hoja como su propia estructura JSON distinta.
Cargas de archivos en herramientas internas
Permita que el equipo suba un archivo de Excel conocido a través de una herramienta interna y conviértalo a JSON por detrás para su procesamiento.
Preguntas frecuentes
¿La API de Excel a JSON maneja varias hojas en un mismo libro?
Sí, cada hoja se analiza y se devuelve como su propia estructura distinta dentro de la respuesta JSON, así que los libros con varias hojas nunca se fusionan de forma incorrecta.
¿Cómo se convierten las fechas de Excel?
Las fechas guardadas internamente como el formato numérico de serie de Excel se convierten automáticamente a cadenas de fecha estándar y legibles, así que nunca tiene que calcular el desfase usted mismo.
¿Lee el resultado de las fórmulas o el texto de la fórmula?
Devuelve el valor calculado de las celdas con fórmula, no la expresión subyacente, igual que vería al abrir la hoja de cálculo.
¿Hay alguna forma gratuita de probar el endpoint de XLSX a JSON?
No hay capa gratuita: las capas gratis se abusan y ralentizan a todos. El acceso funciona con un saldo prepago de ForHosting KIT: se recarga desde $10.00 (no caduca) y cada solicitud se cobra a su precio publicado, así que una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens ni créditos inventados, y una tarea fallida no se cobra.
¿Puede manejar celdas combinadas o cabeceras que no empiezan en la fila uno?
Sí, la detección de cabeceras contempla patrones comunes como filas de cabecera desplazadas, aunque diseños personalizados muy irregulares se leen de la forma más literal posible.
¿Qué pasa si el archivo XLSX está dañado o falla al analizarse?
La tarea se reintenta automáticamente hasta tres veces; si aun así no puede analizarse, recibe un error claro sin cargo por el intento fallido.
¿Cómo recibo el JSON resultante?
Mediante un webhook firmado, recomendado para flujos automatizados, o un enlace firmado válido durante 24 horas para descarga manual.
¿Cuánto cuesta convertir un archivo de Excel a JSON?
$0.002 por solicitud, cobrado únicamente por conversiones exitosas.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/data/xlsx-to-json \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"…"}'const res = await fetch("https://api.kit.forhosting.com/data/xlsx-to-json", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/data/xlsx-to-json",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/data/xlsx-to-json", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/data/xlsx-to-json", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"text": "…"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "data.xlsx_to_json",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 25 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |