Edición en vivo Persistencia local 100% privado Offline-ready Sin upload

Editor visual de tablas HTML extraídas

Pega HTML, edita la tabla en vivo (sort, filter, normalización de tipos) y exporta a XLSX, CSV, JSON o Markdown. Los datos viven en tu navegador, no en un servidor.

Esta herramienta no se conecta a internet para extraer datos — todo lo que pegues o subas se procesa únicamente en tu navegador, y los datos que edites se guardan localmente en tu dispositivo. Respeta siempre los términos de uso del sitio original y las leyes de propiedad intelectual aplicables.

Bundle ~1 MB ES / EN 6 formatos de export

Pega HTML, sube un archivo o carga un ejemplo para empezar a editar tu tabla.

Qué hace esta herramienta

Un editor visual de tablas HTML en el navegador con cinco piezas que funcionan juntas: parser HTML nativo que detecta tablas <table> y listas <ul>/<ol> del HTML que pegas (DOMParser estándar, sin librería externa), tabla interactiva editable con click para editar celdas in-place, orden y filtrado multi-columna con sort shift+click y filter por columna, normalización de tipos que detecta número/texto/fecha/moneda/booleano/nulo y permite convertir in-place, y export a 6 formatos (CSV RFC 4180 con BOM UTF-8, TSV, XLSX con SheetJS, JSON, Markdown CommonMark y HTML preservado con atributos originales). Todo persiste localmente con IndexedDB: puedes guardar trabajo, cerrar la pestaña y volver mañana.

Pensada para usuarios que necesitan editar una tabla HTML extraída de una web (no solo volcarla como hace IMPORTHTML de Sheets) sin instalar Python, sin subir el archivo a un servidor, en español, con persistencia local para trabajar varios días. La promesa técnica es verificable: abre DevTools → Network y verás que ningún dato sale del dispositivo después de la carga inicial.

Casos de uso típicos

  • Analista de datos que limpia cotizaciones: pegas una tabla HTML con cotizaciones mezcladas en EUR/USD/GBP, normalizas la columna de moneda a número con un click, ordenas por valor, filtras por rango y exportas a XLSX listo para Excel. Lo que en Excel serían 15 minutos de formato manual de celda, aquí son 3 clicks.
  • Periodista con tablas de Wikipedia: necesitas los 30 países más poblados en CSV para cruzar con otro dataset. Copias el HTML de la tabla, pegas, sort descendente por población, export a CSV. Sin instalar nada, sin login, sin perder la tarde.
  • Docente con calificaciones escolares: recibes notas en una tabla HTML pegada desde el sistema del colegio. Editas nombres con errores, filtras por asignatura, ordenas por nota, exportas a XLSX para enviar a secretaría. La persistencia IndexedDB te permite dejar el trabajo a medias el lunes y retomarlo el martes sin perder nada.
  • Investigador que prepara una revisión sistemática: pegas la tabla de un paper (características de los estudios incluidos), ordenas por año, filtras por país, marcas tipo de metodología como booleano, exportas a JSON para alimentar el pipeline de tu revisión.
  • Desarrollador que limpia dumps HTML para tests: pegas un fragmento HTML de Stack Overflow o un dashboard antiguo, normalizas columnas, exportas a JSON para usar como fixture en tus tests unitarios. El HTML preservado te deja devolver el formato original si la integración lo necesita.
  • Estudiante de oposiciones con temarios scrapeados: tienes una tabla de temas de la convocatoria, le añades tu columna personal de "revisado", la ordenas por tema, exportas a Markdown para pegar a tu sistema de notas. La persistencia local mantiene tu avance.

Cómo se usa

  1. Pega el HTML en el Modo A (textarea), arrastra un archivo .html al Modo B, o pulsa uno de los 4 ejemplos precargados del Modo C para probar sin datos propios.
  2. Selecciona la tabla del dropdown automático si el HTML contiene varias, y ajusta las opciones de extracción (cabeceras, limpiar HTML interno, decodificar entities, preservar atributos).
  3. Edita celdas haciendo click directamente sobre ellas. Pulsa Enter para confirmar o Esc para cancelar. El tipo de la columna se recalcula automáticamente al cambiar el contenido.
  4. Ordena haciendo click en el header de columna (ascendente → descendente → sin orden). Pulsa Shift+click para multi-sort con indicador de prioridad numérico en el header.
  5. Filtra escribiendo en el campo bajo cada header de columna (match exacto o contiene). Usa el campo de búsqueda global para regex avanzado (con sintaxis /patrón/flags).
  6. Cambia tipos de columna con el menú desplegable del icono de tipo en cada header: convierte moneda → número, fecha → texto, texto → número, etc. La transformación es in-place y respeta el formato original.
  7. Reordena columnas arrastrando los headers horizontalmente (drag & drop con SortableJS). El ancho de cada columna se preserva al reordenar.
  8. Exporta pulsando uno de los 6 botones de export (CSV, TSV, XLSX, JSON, Markdown, HTML preservado). El archivo se descarga directo, sin upload intermedio.
  9. Recupera el trabajo desde la lista de "Tablas guardadas" del panel izquierdo. Cada tabla guarda título, fecha, filas y columnas para que puedas volver a ella sin perder los cambios.
  10. Cambia el idioma con el toggle ES/EN de la esquina superior derecha. Toda la interfaz se traduce al instante.

Por qué esta herramienta

El mercado de "convertir HTML a Excel" tiene un líder claro (TableConvert) pero está dominado por herramientas EN-only, sin persistencia y sin edición intermedia. ConvertCSV y CodeBeautify son conversores puros sin edición. Convertio sube el archivo a un servidor (rompe privacidad). Instant Data Scraper requiere extensión Chrome. Aspose Web es pesado y con marca de agua en el output. Y las herramientas colaborativas (HedgeDoc, Row64) son overkill para una tarea de un solo usuario en una sola sesión.

Nuestra propuesta cierra ese hueco con cinco ejes en una sola URL: extracción (pegar HTML) + edición (celdas in-place) + sort/filter/search (multi-columna con regex) + persistencia IndexedDB (el trabajo sobrevive a refresh y al cierre de pestaña) + export 6 formatos (CSV RFC 4180, TSV, XLSX, JSON, Markdown y HTML preservado). Bilingüe ES/EN con toggle en vivo. 100% client-side, sin upload, sin servidor, sin tracking. Si solo necesitas extraer sin editar, mira el hermano extractor importhtml-importxml.

Privacidad

Funciona 100% en tu navegador · Sin registro · Sin tracking · Tus tablas no salen de tu dispositivo. El editor guarda cada cambio directamente en IndexedDB de tu navegador, una base de datos local que solo tú puedes leer. No se envía nada a ningún servidor: ni el HTML que pegas, ni las celdas que editas, ni los exports que generas, ni las búsquedas. Puedes verificarlo abriendo DevTools → Network y verás que después de la carga inicial no hay peticiones con tus datos. Las únicas excepciones requeridas por la política de Google son el CMP de Funding Choices (gestión de consentimiento) y AdSense (anuncios).

Apoya el proyecto

Este proyecto es independiente y sin paywalls. Si te ahorra las 3 horas que dedicabas a limpiar tablas HTML a mano, considera apoyar con un café en Ko-Fi. La donación es completamente voluntaria y no desbloquea ninguna función: todo es gratis y seguirá siéndolo.

Volver al directorio

Explora las otras herramientas gratuitas de 1000 Herramientas Web: calculadoras, editores, generadores, validadores y más — todas client-side, sin registro, sin tracking.

Limitaciones

  • No se conecta a URLs remotas: la política de seguridad CORS del navegador impide leer HTML de otra URL sin permiso explícito del servidor remoto. Saltarse esto rompería tu privacidad y la promesa 100% client-side. La solución es copiar el HTML manualmente: clic derecho en la página de origen → Ver código fuente de la página, o DevTools → Elements → Copy outerHTML sobre el elemento <table>.
  • No funciona con páginas que cargan datos con JavaScript (React, Vue, Angular): esas páginas generan las tablas en el DOM tras la primera carga, así que el código fuente solo muestra el esqueleto. Para esos casos hay un workaround detallado en la FAQ; si necesitas scraping recurrente sobre sitios dinámicos, considera herramientas dedicadas de pago como Browse AI o Thunderbit.
  • Persistencia local con cuota: IndexedDB tiene cuota variable según navegador (Chrome ~50% disco libre, Firefox ~10% del total, Safari ITP ~1 GB o menos en modo privado). La herramienta avisa al detectar cuota baja y recomienda exportar a XLSX/CSV antes de seguir.
  • Modo privado / navegación incógnito puede borrar IndexedDB al cerrar la pestaña. Si trabajas en modo privado, exporta al final de cada sesión.
  • Type-detection es sugerencia, no imposición: la herramienta propone el tipo probable por columna según el contenido, pero el usuario revisa y cambia el tipo desde el menú del header antes de aplicar conversiones in-place.
  • Sin análisis estadístico avanzado ni gráficos: la herramienta es para DATOS tabulares, no para análisis. Sort, filter, search y normalización de tipos son el alcance MVP. Para estadísticas, pivot tables o gráficos, exporta a Excel/Sheets y usa sus herramientas nativas.
  • HTML >500 KB puede ralentizar el parseo: si pegas HTML muy grande, verás un aviso y la operación tardará más de lo habitual. La solución es recortar el HTML a la tabla específica que necesitas.

Preguntas frecuentes

¿Mis tablas se quedan en mi navegador o se suben a un servidor?

Tus tablas se guardan en IndexedDB de tu propio navegador, nunca se suben a ningún servidor nuestro. Puedes verificarlo abriendo DevTools → Network: no verás ninguna petición con tus tablas después de la carga inicial. Si cambias de dispositivo o limpias los datos del navegador, las tablas desaparecen de ese equipo — por eso recomendamos exportar a XLSX/CSV regularmente.

¿Por qué no puedo pegar una URL directamente?

La política de seguridad CORS de tu navegador impide que una página web lea el contenido de otra URL sin permiso explícito del servidor remoto. Saltarse esta protección rompería tu privacidad y la promesa de 100% client-side. La solución es copiar el HTML manualmente: abre la página en otra pestaña → clic derecho → Ver código fuente de la página → copia el bloque <table> → pégalo en esta herramienta. En Firefox también puedes usar Inspección → botón derecho sobre la tabla → Copy outerHTML.

¿Qué diferencia hay entre esta herramienta y la función IMPORTHTML de Google Sheets?

IMPORTHTML extrae datos directamente desde una URL y los vuelca en una hoja de cálculo, pero no permite editarlos antes del volcado y no preserva formato HTML original. Esta herramienta toma el HTML pegado como punto de partida, te permite editarlo visualmente (sort, filter, normalización de tipos), y exporta el resultado a 6 formatos. Si solo necesitas extraer sin editar, mira el hermano extractor importhtml-importxml en 1000herramientasweb.com; si necesitas editar y trabajar con los datos antes de exportarlos, esta herramienta es la adecuada.

¿Funciona con tablas que tienen rowspan o colspan?

Sí, los atributos colspan y rowspan se detectan al parsear y se preservan en la vista editable (las celdas afectadas muestran el atributo como un badge). En el export HTML preservado se mantienen los atributos originales; en XLSX/CSV/JSON la tabla se aplana a una estructura rectangular estándar, replicando el valor de las celdas fusionadas en las celdas hijas para mantener la integridad de los datos.

¿Funciona con páginas que cargan datos con JavaScript?

No directamente, porque esas páginas generan las tablas en el DOM mediante JavaScript después de la primera carga. Ver el código fuente solo muestra el esqueleto HTML vacío. Para esos casos hay un workaround: abre la página en el navegador, espera a que se rendericen las tablas, abre DevTools → Elements, busca el elemento <table> que te interesa, clic derecho → Copy → Copy outerHTML, y pega ese fragmento en esta herramienta.

¿Qué tipos de datos detecta automáticamente?

La herramienta detecta seis tipos por columna según el contenido: número (enteros y decimales, separadores . o ,), texto (cadenas libres), fecha (formatos ISO DD/MM/YYYY, MM/DD/YYYY, YYYY-MM-DD y variantes), moneda (símbolos €, $, £, ¥, USD, EUR, prefijos o sufijos), booleano (true/false, sí/no, yes/no, 1/0) y nulo (celdas vacías, solo espacios, guiones, n/a). Cada columna muestra el icono del tipo detectado y un menú permite convertir el tipo in-place (p. ej., cambiar moneda a número quitando el símbolo).

¿Es legal editar tablas que extraje de otro sitio web?

Depende del caso. Datos públicos (estadísticas, listados abiertos) suelen ser editables libremente si los usas para análisis o transformación personal. Contenido con copyright (textos, imágenes, descripciones largas) puede requerir atribución o permiso. Bases de datos con derechos sui generis (UE, Reino Unido) tienen reglas específicas. Esta herramienta es una caja de herramientas neutra: tu responsabilidad es verificar la licencia de cada fuente y respetar los términos de uso del sitio original y las leyes de propiedad intelectual aplicables en tu jurisdicción.

¿Funciona sin internet?

Sí, una vez cargada la página por primera vez. La herramienta cachea HTML, CSS, JavaScript y las tres librerías (SheetJS, PapaParse, SortableJS) en un Service Worker. Después de eso puedes desconectar el wifi y seguir pegando HTML, editando celdas, aplicando sort/filter y exportando a cualquier formato. Las únicas peticiones que requieren red son los anuncios de AdSense, no la herramienta en sí.

Cómo funciona esta herramienta por dentro

Arquitectura técnica

Por debajo, la herramienta combina cinco tecnologías web estándar que llevan años disponibles en cualquier navegador moderno: DOMParser nativo para parsear el HTML pegado (la misma API que usa cualquier extensión del navegador para manipular el DOM, sin librería externa), PapaParse para serializar CSV/TSV con soporte completo de RFC 4180 (escape de comillas, separadores configurables, line endings CRLF), SheetJS para generar y leer XLSX con round-trip completo (preserva tipos numéricos, fechas y texto en celdas), SortableJS para drag & drop de columnas (vanilla JS, sin dependencias), e IndexedDB para persistencia local con object stores tipados e índices por nombre y fecha. Toda la lógica de edición, sort, filter y type-detection es JavaScript vanilla ES2020+ sin frameworks: ni React, ni Vue, ni Angular, ni Tailwind. El bundle total de la herramienta son aproximadamente 1 MB raw (300 KB gzipped), comparable a una imagen JPEG de calidad alta, y se sirve 100% local excepto Funding Choices y AdSense (compliance legal).

El parser es la pieza más crítica. Cuando pegas HTML, la herramienta llama a new DOMParser().parseFromString(html, 'text/html') y obtiene un documento completo. Luego recorre todos los elementos <table> (o <ul>/<ol> según el modo) y extrae una matriz bidimensional de strings preservando atributos como colspan, rowspan, scope, class y style en un mapa paralelo. Esta estructura paralela es la que permite el export HTML preservado sin perder formato original. La primera fila se trata como cabecera si el checkbox "Incluir cabeceras" está activo y existe <thead> o si la heurística detecta que la primera fila tiene contenido th.

Cómo usar la herramienta paso a paso (extenso)

1. Cargar HTML. Tres modos disponibles. El Modo A (pegar HTML) es el más habitual: copia el bloque <table> desde la página de origen, pégalo en el textarea y pulsa "Procesar HTML". El Modo B (subir archivo) acepta .html y .htm con drag & drop o file picker; útil cuando tienes la página guardada en local. El Modo C carga uno de los 4 ejemplos precargados (Wikipedia, IMDb, datos.gob.es, W3Schools) para probar sin datos propios. Los 4 ejemplos están integrados en el JS como strings HTML completos, sin fetch de red, así que funcionan también offline.

2. Ajustar opciones de extracción. Si el HTML tiene varias tablas, aparece un dropdown "Tabla" numerado 1-indexado (siguiendo la convención de IMPORTHTML de Google Sheets, que empieza en 1, no en 0). El dropdown "Fuente" alterna entre parsear tablas <table> o listas <ul>/<ol> (las listas se convierten en tabla con dos columnas: índice y texto del ítem). Las 5 checkboxes adicionales controlan cómo se limpia el HTML interno de cada celda (quitando <a>, <span>, negrita, etc.) y si se preservan los atributos originales.

3. Editar, ordenar y filtrar. Click en cualquier celda para entrar en modo edición; Enter confirma, Esc cancela, blur confirma automáticamente. Click en el header ordena ascendente, segundo click descendente, tercer click sin orden; Shift+click añade esa columna al multi-sort con un indicador numérico de prioridad. El campo bajo cada header es el filter por columna (coincidencia contiene, case-insensitive); el campo "Buscar" del toolbar es el search global, que acepta regex con sintaxis /patrón/flags (por ejemplo /202[0-3]/i) o búsqueda literal si no se usa la sintaxis regex.

4. Normalizar tipos. Cada columna muestra en su header un icono con el tipo detectado (número 🔢, texto 📝, fecha 📅, moneda 💶, booleano ✓, nulo ⊘). Click en el icono abre un menú con la conversión a otros tipos: por ejemplo, si la columna se detecta como "moneda €", puedes convertirla a "número" (quitando el símbolo € y los separadores de miles) o a "texto" (preservando el símbolo original). La conversión es in-place y reversible exportando a otro formato.

5. Exportar y persistir. Los 6 botones de export generan archivos independientes con Blob + URL.createObjectURL + click programático en <a download>. Sin upload, sin servidor intermedio. Simultáneamente, cada cambio se persiste en IndexedDB con un debounce de 5 segundos; la lista de "Tablas guardadas" del panel izquierdo muestra todas las tablas con título, fecha y conteo de filas/columnas, y permite reabrir, renombrar o borrar cada una. La cuota de IndexedDB se monitoriza con navigator.storage.estimate() y se muestra un aviso si baja del 20% libre.

Consejos y trucos

Atajo de teclado Shift+click para multi-sort: ordena por varias columnas a la vez con prioridad visual. Por ejemplo, Shift+click en "País" y luego Shift+click en "Población" ordena alfabéticamente por país y, dentro de cada país, descendente por población. El indicador numérico ¹² en cada header muestra la prioridad.

Regex en la búsqueda global: el campo "Buscar" del toolbar acepta tres modos: texto literal (busca la cadena tal cual), regex con sintaxis /patrón/flags (por ejemplo /^20\d{2}$/ para años de 4 dígitos que empiezan por 20), y case-insensitive automático si escribes solo la cadena sin la sintaxis regex. Si tu regex es inválida, verás un aviso inline en vez de un error silencioso.

HTML preservado vs HTML plano: el botón "HTML preservado" del export mantiene los atributos originales (colspan, rowspan, scope, class, style), útil si vas a pegar el HTML de vuelta en una página web y necesitas mantener el formato. El XLSX/CSV/JSON, en cambio, aplana la tabla a una estructura rectangular estándar replicando el valor de las celdas fusionadas en las celdas hijas — esto es lo que Excel y Sheets esperan, pero pierdes la información de fusión.

Export CSV con BOM UTF-8 para Excel ES: el CSV generado lleva un BOM UTF-8 al inicio para que Excel en español reconozca acentos y eñes sin pedirte que selecciones la codificación al abrir. Si prefieres CSV sin BOM (por ejemplo para abrir en un editor de texto que se lía con el BOM), exporta a TSV que no usa BOM.

Auto-save con toast discreto: cada 5 segundos aparece un toast pequeño abajo a la derecha con el texto "Guardado" en verde ácido, y se desvanece a los 2 segundos. Si el auto-save falla (cuota llena, navegador en modo privado que borra IndexedDB), el toast se vuelve rojo y muestra el motivo; exporta inmediatamente a XLSX si ves ese aviso.

Reorder drag & drop de columnas: arrastra cualquier header horizontalmente para reordenarlo. El ancho de la columna se preserva al moverla (no se reajusta al ancho por defecto). Si el reorder te lía la vista y quieres volver al orden original, pulsa "× sort" para limpiar el orden aplicado — pero el reorder de columnas se mantiene hasta que recargues la tabla desde "Tablas guardadas".

Casos prácticos detallados

Limpieza de cotizaciones financieras: una empresa recibe cotizaciones de proveedores en tablas HTML embebidas en emails. Cada proveedor usa formato distinto (€ 1.234,56 vs $1,234.56 vs 1.234,56 EUR). Con esta herramienta, pegas el HTML, la detección automática marca cada columna como "moneda" según el símbolo presente, abres el menú del header y eliges "Convertir a número" para normalizar las tres columnas a número decimal puro. Sort descendente por precio, filter por proveedor que contenga "ACME", export a XLSX. Tiempo total: 90 segundos vs 15 minutos en Excel.

Migración de temario a Markdown: un estudiante de oposiciones tiene el temario en una página web del BOE. Copia la tabla de temas (Nº | Título | Apartado), la pega, le añade una columna "Revisado" escribiendo manualmente los valores true/false en cada celda, ordena por Nº para mantener el orden oficial, y exporta a Markdown. El archivo .md resultante se puede abrir en Obsidian, Logseq, Notion (vía import), VS Code con extensión Markdown Preview, o cualquier editor de texto. La persistencia IndexedDB le permite dejar la columna "Revisado" a medias durante días.

Preparación de fixtures para tests: un desarrollador necesita un JSON con datos de productos para sus tests unitarios. Tiene un dashboard HTML antiguo exportado a .html. Arrastra el archivo, la herramienta detecta la tabla de productos (id, nombre, precio, categoría), convierte la columna precio de moneda a número, sort por id, export a JSON array de objetos. Pega el JSON en fixtures/products.json de su repo y los tests pasan.

Glosario

rowspan / colspan
Atributos HTML de una celda de tabla que indican cuántas filas (rowspan) o columnas (colspan) ocupa visualmente. La herramienta los detecta al parsear y los preserva en el export HTML preservado; en XLSX/CSV/JSON se aplanan replicando el valor en cada celda hija.
CORS (Cross-Origin Resource Sharing)
Política de seguridad del navegador que impide por defecto que una página web lea el contenido de otra URL. Por eso esta herramienta no puede extraer HTML directamente desde una URL remota; el usuario debe copiar manualmente y pegar.
IndexedDB
API del navegador para almacenamiento local estructurado de gran capacidad (decenas de MB a GB según navegador). La herramienta usa IndexedDB en lugar de localStorage porque localStorage tiene límite de ~5 MB y solo almacena strings; IndexedDB permite objetos estructurados, índices y transacciones async.
RFC 4180
Estándar IETF que define el formato CSV: campos separados por coma, registros separados por CRLF, campos con comas/saltos/comillas entrecomillados con comillas dobles y comillas internas escapadas como "". PapaParse implementa este estándar completo.
CommonMark
Especificación formal y unificada de Markdown (vs las múltiples variantes que existían antes: Markdown original, GitHub Flavored Markdown, MultiMarkdown, etc.). El export a Markdown usa la sintaxis de tablas pipe-style estándar de CommonMark, que renderiza idéntico en GitHub, GitLab, Pandoc, Obsidian y la mayoría de editores modernos.
BOM UTF-8
Byte Order Mark: 3 bytes (EF BB BF) al inicio de un archivo UTF-8 que indica la codificación. Excel en español necesita este BOM para reconocer acentos y eñes al abrir un CSV; sin él, Excel interpreta el archivo como Latin-1 y muestra caracteres rotos.

Otras funciones para traer datos a Sheets (referencia)

Esta herramienta es 100% client-side y edita HTML pegado. Para extraer directamente desde una URL dentro de Google Sheets, existen las funciones nativas: IMPORTHTML (tablas y listas HTML remotas), IMPORTXML (consultas XPath sobre cualquier XML/HTML remoto), IMPORTDATA (CSV/TSV remotos), IMPORTFEED (feeds RSS/Atom) e IMPORTRANGE (entre hojas Sheets). Si solo necesitas extraer sin editar, mira el hermano extractor importhtml-importxml en este mismo sitio, que tiene un modo dedicado a explicar estas funciones y dar ejemplos prácticos.

Aviso legal y de uso

Esta herramienta no se hace responsable del uso que hagas de los datos editados. Al editar y exportar tablas scrapeadas de sitios web, asegúrate de tener derecho a usar esos datos. Los datos que guardes localmente en tu navegador (IndexedDB) pueden borrarse al limpiar el historial, en modo privado o al cambiar de dispositivo. Respeta siempre los términos de uso del sitio original y las leyes de propiedad intelectual aplicables en tu jurisdicción. Esta herramienta es una caja de herramientas neutra para transformación de datos; no avala ni facilita scraping que viole términos de servicio ajenos.

¿Borrar todas las tablas?

¿Borrar TODAS las tablas guardadas en este navegador?

Esta acción no se puede deshacer.