Convertir PDF a Excel
Los números que necesita están atrapados en una tabla, y volver a teclearlos es donde empiezan los errores.
Ejecútela online
Ejecute esto en nuestros servidores con su cuenta. Las herramientas gratuitas corren en su navegador; esta cobra de su saldo del KIT según el precio de arriba.
Este endpoint lee una página que usted envía como imagen, encuentra los datos tabulares y los reconstruye como celdas de hoja de cálculo reales — filas, columnas y valores que puede sumar, ordenar y filtrar, no una captura de pantalla pegada en una cuadrícula.
Por qué las tablas en PDF quedan atrapadas
Un PDF no guarda una tabla como lo hace una hoja de cálculo — guarda líneas, cajas y texto posicionado, y es el cerebro humano el que reconstruye la cuadrícula al verla. Copiar y pegar una de esas tablas en Excel suele dar como resultado una sola columna de texto revuelto o números que pierden su alineación decimal. Ese es el problema específico y acotado que este endpoint resuelve: leer la estructura visual de una tabla en una página y convertirla de nuevo en filas y columnas que Excel entienda de verdad.
Quién necesita recuperar una tabla, no un documento
Analistas que extraen cifras de una página de un informe de proveedor, contadores que concilian un estado de cuenta bancario que solo llega escaneado, investigadores que digitalizan una tabla de un artículo publicado o de un expediente gubernamental, equipos de compras que comparan una lista de precios de proveedor enviada como imagen estática. Donde los datos de origen están atrapados como una tabla similar a una imagen y el destino necesita ser una hoja de cálculo funcional, este es el puente.
Qué recibe de vuelta
Envía la página como imagen, recibe de inmediato un task_id, y la tarea lee la tabla de esa página y la escribe en un XLSX con valores en celdas reales — listas para una fórmula SUMA, una tabla dinámica o un BUSCARV, no solo texto legible. Si la página tiene más de una tabla, cada una se detecta y se escribe por separado. Procesa una página por solicitud; una página nítida y renderizada digitalmente da la extracción más limpia, y un escaneo o una foto de móvil también sirven, con un resultado que depende de la calidad de la imagen.
Cómo encaja en un flujo de datos
Como el resultado llega por webhook, se integra en procesos de ingesta de datos sin necesidad de sondeo: un sistema financiero vigila una bandeja de entrada en busca de páginas entrantes, dispara una solicitud de conversión por cada imagen de página, y carga el XLSX resultante directo en su proceso de conciliación en cuanto el webhook confirma que está listo.
Una nota sobre el origen de las tablas en PDF
El PDF se diseñó a principios de los años noventa para preservar exactamente cómo se ve una página al imprimirse, y por eso mismo es tan malo para preservar lo que una tabla es estructuralmente. Las hojas de cálculo, en cambio, guardan datos tabulares como filas y columnas literales desde las primeras versiones electrónicas de finales de los años setenta. Convertir una en la otra es en realidad traducir entre dos ideas distintas de lo que es una tabla — formato visual frente a datos estructurados.
Qué puede hacer con ella
Conciliación de informes de proveedores
Una página de un informe trimestral de un proveedor contiene una tabla de precios; enviarla como imagen devuelve un XLSX que permite a finanzas conciliar contra los registros internos sin volver a teclearla.
Análisis de estados de cuenta bancarios
Una página de estado de cuenta contiene la tabla de transacciones; convertir esa página a Excel permite filtrar y categorizar sin captura manual.
Digitalización de datos de investigación
Un investigador necesita una tabla de una página de un artículo publicado en formato de hoja de cálculo para análisis posteriores.
Comparación de listas de precios
Compras recibe una página de lista de precios de proveedor y la convierte a XLSX para comparar renglones lado a lado.
Preguntas frecuentes
¿Está disponible la API PDF a Excel?
Sí, está disponible ahora y lista para recibir tareas.
¿Cómo se cobra?
$0.010 por solicitud más $0.0575 por página, así que una página sale en $0.0675 — la extracción de tablas es el paso más intensivo en procesamiento, lo que se refleja en la tarifa por página.
¿Puedo convertir un PDF completo de varias páginas de una vez?
Todavía no en una sola llamada: cada solicitud procesa una página enviada como imagen. Dividir un PDF de varias páginas en imágenes de página requiere rasterización en contenedor, que está en la hoja de ruta; por ahora, renderice cada página a una imagen y envíelas de forma individual.
¿Funciona con escaneos o fotos?
Sí — envíe la página como imagen; un escaneo o una foto de móvil sirven, aunque el resultado depende de la calidad de la imagen. Una página nítida y creada digitalmente se extrae con mayor precisión.
¿Qué pasa si la página no tiene tabla?
Si la página no tiene una estructura tabular detectable, recibe un error claro en lugar de un resultado ilegible.
¿Obtengo celdas reales o solo texto?
Celdas reales — filas y columnas que puede sumar, ordenar y referenciar en fórmulas, no texto pegado en una cuadrícula.
¿Tiene un plan gratis?
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.
¿Cómo recibo el archivo XLSX?
Por webhook firmado cuando la tarea termina, o desde un enlace firmado válido por 24 horas.
¿Se cobra si la extracción falla?
No. Las tareas fallidas se reintentan automáticamente hasta tres veces y nunca se cobran — en su lugar recibe un error claro.
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, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/doc/pdf-to-excel \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"image":"https://ejemplo.com/libro.xlsx"}'const res = await fetch("https://api.kit.forhosting.com/doc/pdf-to-excel", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"image": "https://ejemplo.com/libro.xlsx"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/doc/pdf-to-excel",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"image": "https://ejemplo.com/libro.xlsx"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/doc/pdf-to-excel", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"image":"https://ejemplo.com/libro.xlsx"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"image":"https://ejemplo.com/libro.xlsx"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/doc/pdf-to-excel", 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
{
"image": "https://ejemplo.com/libro.xlsx"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "doc.pdf_to_excel",
"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 |
max_pages | 200 |
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. |
413 | input_too_large | El archivo supera el límite de tamaño. |
422 | task_failed | La tarea falló tras 3 reintentos. No se cobra. |