Import Excel to Table: un plugin de WordPress sin dependencias para convertir un Excel (o una hoja de cálculo) en una tabla con shortcode

NOTA: De los 3 sitios en los que he probado este plugin, solo en Indaga.net (aquí) se recarga la página del plugin después de la importación. No obstante, funciona en todos. Puede que sea un conflicto entre plugins o que los otros sitios utilizan Gutenberg e Indaga,net no; lo veré más adelante… SOLUCIONADO!!

Lo actualizo a la versión 1.4.1. Ahora también está la opción de mostrar todos los registros.

Valencia, 10/08/2026, G.B.
Hay una necesidad que se repite mucho en sitios WordPress pequeños y medianos: alguien tiene un listado en Excel o en LibreOffice Calc (un directorio de contactos, un catálogo, una lista de recursos) y quiere que aparezca como una tabla navegable en una página web, sin tener que copiar y pegar HTML cada vez que cambian los datos. Para cubrir ese caso he desarrollado Import Excel to Table, un plugin de WordPress que importa archivos .xlsx o .ods a una tabla propia de la base de datos y los muestra mediante shortcode, con ordenación por columna, paginación y enlaces automáticos.

Un ejemplo

TítuloAutorEditorialURL reseña
¡Guardias! ¡Guardias!Terry PratchettRandom House Mondadori, 2008.http://unlibrojuntoalfuego.blogspot.com/2016/01/guardias-guardias-mundodisco-pratchett.html
¡Voto a Bríos! (Jingo)Terry Pratchetthttps://mundodisco.fandom.com/es/wiki/Voto_a_bros!
A la sombra del granado .Tariq Alí.Círculo de lectores
A Stroke of the Pen. The lost StoriesTerry Pratchetthttps://en.wikipedia.org/wiki/A_Stroke_of_the_Pen:_The_Lost_Stories
Abdul Bashur, soñador de navíosÁlvaro Mutis.Círculo de Lectores.https://a7side.com/book/abdul-bashur-sonador-de-navios/
África lloraAlberto Vázquez-Figueroa.Círculo de lectoreshttps://www.casadellibro.com/libro-africa-llora/9788497931700/943432
Al oeste de BabiloniaEduardo Garrigues.Círculo de lectores.https://www.casadellibro.com/libro-al-oeste-de-babilonia/9788401327506/639724
Alexandros I: El hijo del sueño .Valerio Massimo Manfredi.(ebook).https://www.casadellibro.com/libro-alexandros-i3a-el-hijo-del-sueno/9788497594400/884139
Alexandros II: Las Arenas de Amón .Valerio Massimo Manfredi.(ebook).https://www.casadellibro.com/libro-alexandros-ii-las-arenas-de-amon/9788497594417/884141
Alexandros III: Los Confines del Mundo .Valerio Massimo Manfredi.(ebook).https://www.casadellibro.com/libro-alexandros-iii-el-confin-del-mundo/9788497594394/884142
Alí en el país de las maravillasAlberto Vázquez-Figueroa.Plaza & Janéshttps://www.lecturalia.com/libro/5348/ali-en-el-pais-de-las-maravillas
Alice in Wonderland and Through the Looking-Glass and What alice Found thereLewis Carrollhttps://www.goodreads.com/work/quotes/2375385-alice-s-adventures-in-wonderland-through-the-looking-glass-and-what-a
AzazelIsaac Asimov.Cículo de lectores.http://www.lecturalia.com/libro/67454/azazel
Bella y oscuraRosa Monterohttps://www.lecturalia.com/libro/4527/bella-y-oscura
BrujeríasTerry Pratchett.Ver reseña:https://www.casadellibro.com/libro-brujerias-mundodisco-6--las-brujas-2/9788497593182/873695
Buenos días, pereza (Estrategias para sobrevivir en el trabajo )Corinne Maier.Círculo de lectores.http://www.lecturalia.com/libro/49083/buenos-dias-pereza
Cachito (Un asunto de honor)Arturo Pérez-Reverte.Alfaguara de bolsillohttps://www.perezreverte.com/libro/51/un-asunto-de-honor-cachito/
Caperucita en ManhattanCarmen Martín Gaite.Siruela.https://www.actualidadliteratura.com/caperucita-en-manhattan/
Carpe Diem: confesiones de un pollo de barraAlfonso Ussía.S.A. Ediciones B Castellanohttps://www.casadellibro.com/libro-carpe-diem-confesiones-de-un-pollo-de-barra/9788466609753/831217
Carpe Diem: Confesiones de un pollo de barraAlfonso Usía.Círculo de lectoreshttps://www.casadellibro.com/libro-carpe-diem-confesiones-de-un-pollo-de-barra/9788466609753/831217
Carta del fin del mundo - Jose Manuel Fajardo - Ediciones B - 1996.http://www.lecturalia.com/libro/30952/carta-del-fin-del-mundo
CavadoresTerry Pratchett.ebooks#3
CienfuegosAlberto Vázquez-Figueroa.(ver)https://www.casadellibro.com/libro-cienfuegosvol-i/9788497595766/901015
Cienfuegos 2Alberto Vázquez-Figueroa.Círculo de Lectoreshttps://www.casadellibro.com/libro-cienfuegos-2--caribes/mkt0006157410/12058110
Creative Personal BrandingJulen Salenbacherhttps://www.casadellibro.com/libro-creative-personal-branding-la-estrategia-de-marcar-tendencia/9788416583874/5228635

Total de registros: 234

El problema de partida: nada de dependencias externas

La primera versión se apoyaba en PhpSpreadsheet, la librería PHP de referencia para leer hojas de cálculo. Funciona muy bien, pero arrastra una carpeta vendor/ de varios megabytes y miles de archivos pequeños, que hay que generar con Composer e instalar en el servidor. En un hosting compartido con límite de número de archivos —como suele pasar cuando alojas varias webs en el mismo plan— eso puede ser un problema real, y además complica el despliegue si solo tienes acceso por SFTP, sin terminal.

La solución fue reescribir el lector de hojas de cálculo desde cero, apoyándome únicamente en extensiones que ya vienen integradas en PHP: ZipArchive, SimpleXML y DOM. Un archivo .xlsx o .ods no es más que un ZIP con XML dentro, así que se puede leer directamente sin ninguna librería externa. El resultado: cero dependencias, ninguna carpeta que subir aparte del propio plugin, y una copia por SFTP es suficiente para desplegarlo.

Qué hace

  • Importa .xlsx y .ods desde el panel de administración, usando la primera fila del archivo como encabezados de columna.
  • Admite varias importaciones independientes, cada una con su propio identificador. Un directorio de contactos, un catálogo de productos y una lista de recursos pueden convivir en el mismo sitio sin pisarse: reimportar uno de ellos no afecta a los demás.
  • Sustituye los datos de forma transaccional: si la importación falla a mitad de proceso, no se pierden ni los datos antiguos ni se queda la tabla a medias.
  • Muestra cada importación con su propio shortcode, indicando su identificador: excel_table id=»contactos», excel_table id=»catalogo», etc. Pueden convivir varios en la misma página, cada uno con su propio control de orden y paginación, sin interferir entre sí. Con estas funciones:
    • Ordenación por columna (ascendente/descendente).
    • Paginación (25 registros por página por defecto, configurable).
    • Enlaces automáticos: si una celda contiene un correo o una URL —ya sea porque LibreOffice/Excel la convirtió en hipervínculo al escribirla, o simplemente porque el texto tiene forma de email o dirección web—, se muestra como un enlace clicable.
    • Fechas y horas con formato español (DD/MM/AAAA, HH:MM), en lugar del formato ISO interno que usan estos archivos por dentro.
  • Panel de administración con listado de importaciones: identificador, número de registros, fecha de la última importación, el shortcode ya escrito para copiar, vista previa de los datos y borrado individual (o de todas a la vez).
  • Control de acceso opcional: si los datos son sensibles, se puede restringir la visualización a usuarios con sesión iniciada.

Seguridad

Al ser un plugin que acepta subida de archivos y muestra datos en el frontend, se ha cuidado especialmente:

  • Solo usuarios con capacidad manage_options pueden importar o borrar datos, con verificación de nonce (CSRF) en cada acción.
  • El archivo subido se valida por extensión y por tipo MIME real (no basta con renombrar un archivo a .xlsx), con un límite de tamaño de 5 MB.
  • Todo el HTML de salida se escapa correctamente, y tanto los parámetros de ordenación como el identificador de cada importación se validan contra listas seguras antes de usarse en ninguna consulta.
  • Cada registro guardado lleva un hash de integridad que se comprueba al leerlo, como salvaguarda frente a manipulaciones directas de la base de datos.

Compatibilidad

  • WordPress: declarado a partir de la versión 5.0, aunque en la práctica solo usa funciones muy estables de la API ($wpdb, dbDelta(), wp_nonce_field(), add_shortcode()…) disponibles desde mucho antes. Funciona igual con el editor de bloques o con Classic Editor, ya que no depende de Gutenberg.
  • PHP: declarado a partir de 7.4, pero el código en sí no usa ninguna sintaxis exclusiva de PHP 8.x (nada de match(), propiedades readonly, operador nullsafe…), así que en la práctica sería compatible desde PHP 7.0. Probado sin avisos de deprecación hasta PHP 8.3.
  • Extensiones PHP necesarias: zip, SimpleXML, DOM y fileinfo — las cuatro vienen activadas por defecto en la gran mayoría de hostings. Si alguna faltara, el plugin lo detecta y avisa en el panel de administración en vez de fallar en silencio.
  • Actualización sin fricción: si ya tenías datos importados con una versión anterior del plugin (de cuando solo existía una tabla), al actualizar por SFTP se conservan automáticamente bajo el identificador default, y el shortcode

    No hay datos para mostrar (identificador: default).

    sin atributo sigue funcionando exactamente igual que antes.

Plugins similares en el repositorio

Antes de escribir el plugin conviene mirar qué hay ya disponible. En el ecosistema de WordPress existen varias alternativas con un planteamiento parecido, aunque ninguna comparte exactamente el mismo enfoque:

  • wpDataTables — el más completo y establecido del mercado. Importa .xls, .ods y .xlsx y genera tablas totalmente personalizables, con filtros avanzados, gráficos y edición tipo Excel en el frontend. Es mucho más potente que Import Excel to Table, pero también mucho más pesado: es de pago (el plan gratuito es limitado) y no está pensado para minimizar dependencias.
  • WP Convert Excel Data To Table And DB — es el que más se parece en planteamiento: importa el Excel a la base de datos de WordPress, gestiona los registros desde un menú propio y permite editarlos manualmente. No es posible comprobar cómo está construido por dentro, pero conceptualmente es el competidor más cercano.
  • Excel Tables (de WP Missing) — más sencillo: se sube el archivo a la biblioteca de medios, se convierte automáticamente en tabla y se inserta con shortcode. Gratuito y minimalista, pero sin ordenación ni paginación configurables.
  • WP Table Manager — apuesta por sincronizar la tabla de forma continua con el archivo Excel de origen, en vez de hacer una importación puntual.

Ninguno de ellos presume de estar construido sin dependencias externas: lo habitual es que usen PhpSpreadsheet u otra librería similar por debajo. Esa es la principal diferencia de Import Excel to Table frente a las alternativas: mismo resultado funcional que herramientas mucho más grandes, pero sin carpeta vendor/ que instalar, pensado explícitamente para hostings con límite de archivos y despliegue solo por SFTP.

Limitaciones a tener en cuenta

Por ser un lector escrito a mano en lugar de una librería completa, hay algunos casos que no cubre: solo lee la primera hoja del libro, no evalúa fórmulas (toma el último valor calculado guardado en el archivo), y no procesa celdas combinadas ni archivos .xls del formato binario antiguo (hay que convertirlos antes a .xlsx). Para el caso de uso habitual —una o varias tablas de datos simples que se actualizan de vez en cuando— no supone ningún problema.

Un ejemplo insertando el shortcode

TítuloAutorEditorialURL reseña
¡Guardias! ¡Guardias!Terry PratchettRandom House Mondadori, 2008.http://unlibrojuntoalfuego.blogspot.com/2016/01/guardias-guardias-mundodisco-pratchett.html
¡Voto a Bríos! (Jingo)Terry Pratchetthttps://mundodisco.fandom.com/es/wiki/Voto_a_bros!
A la sombra del granado .Tariq Alí.Círculo de lectores
A Stroke of the Pen. The lost StoriesTerry Pratchetthttps://en.wikipedia.org/wiki/A_Stroke_of_the_Pen:_The_Lost_Stories
Abdul Bashur, soñador de navíosÁlvaro Mutis.Círculo de Lectores.https://a7side.com/book/abdul-bashur-sonador-de-navios/
África lloraAlberto Vázquez-Figueroa.Círculo de lectoreshttps://www.casadellibro.com/libro-africa-llora/9788497931700/943432
Al oeste de BabiloniaEduardo Garrigues.Círculo de lectores.https://www.casadellibro.com/libro-al-oeste-de-babilonia/9788401327506/639724
Alexandros I: El hijo del sueño .Valerio Massimo Manfredi.(ebook).https://www.casadellibro.com/libro-alexandros-i3a-el-hijo-del-sueno/9788497594400/884139
Alexandros II: Las Arenas de Amón .Valerio Massimo Manfredi.(ebook).https://www.casadellibro.com/libro-alexandros-ii-las-arenas-de-amon/9788497594417/884141
Alexandros III: Los Confines del Mundo .Valerio Massimo Manfredi.(ebook).https://www.casadellibro.com/libro-alexandros-iii-el-confin-del-mundo/9788497594394/884142
Alí en el país de las maravillasAlberto Vázquez-Figueroa.Plaza & Janéshttps://www.lecturalia.com/libro/5348/ali-en-el-pais-de-las-maravillas
Alice in Wonderland and Through the Looking-Glass and What alice Found thereLewis Carrollhttps://www.goodreads.com/work/quotes/2375385-alice-s-adventures-in-wonderland-through-the-looking-glass-and-what-a
AzazelIsaac Asimov.Cículo de lectores.http://www.lecturalia.com/libro/67454/azazel
Bella y oscuraRosa Monterohttps://www.lecturalia.com/libro/4527/bella-y-oscura
BrujeríasTerry Pratchett.Ver reseña:https://www.casadellibro.com/libro-brujerias-mundodisco-6--las-brujas-2/9788497593182/873695
Buenos días, pereza (Estrategias para sobrevivir en el trabajo )Corinne Maier.Círculo de lectores.http://www.lecturalia.com/libro/49083/buenos-dias-pereza
Cachito (Un asunto de honor)Arturo Pérez-Reverte.Alfaguara de bolsillohttps://www.perezreverte.com/libro/51/un-asunto-de-honor-cachito/
Caperucita en ManhattanCarmen Martín Gaite.Siruela.https://www.actualidadliteratura.com/caperucita-en-manhattan/
Carpe Diem: confesiones de un pollo de barraAlfonso Ussía.S.A. Ediciones B Castellanohttps://www.casadellibro.com/libro-carpe-diem-confesiones-de-un-pollo-de-barra/9788466609753/831217
Carpe Diem: Confesiones de un pollo de barraAlfonso Usía.Círculo de lectoreshttps://www.casadellibro.com/libro-carpe-diem-confesiones-de-un-pollo-de-barra/9788466609753/831217
Carta del fin del mundo - Jose Manuel Fajardo - Ediciones B - 1996.http://www.lecturalia.com/libro/30952/carta-del-fin-del-mundo
CavadoresTerry Pratchett.ebooks#3
CienfuegosAlberto Vázquez-Figueroa.(ver)https://www.casadellibro.com/libro-cienfuegosvol-i/9788497595766/901015
Cienfuegos 2Alberto Vázquez-Figueroa.Círculo de Lectoreshttps://www.casadellibro.com/libro-cienfuegos-2--caribes/mkt0006157410/12058110
Creative Personal BrandingJulen Salenbacherhttps://www.casadellibro.com/libro-creative-personal-branding-la-estrategia-de-marcar-tendencia/9788416583874/5228635

Total de registros: 234

NOTA: Import Excel to Table nació como una prueba en este mismo sitio, indaga.net, antes de valorar su uso en otros proyectos con necesidades de datos tabulares más específicas.

Descargar archivo .zip que he subido y compartido en mi cuenta de pCloud. Aunque pCloud es seguro, comprueba siempre que los archivos que descargues estén limpios de virus: import-excel-to-table.zip

Plugin de WordPress Comet Cache: lo borro

Una nota rápida…

Valencia, 03/08/2026
Parece ser que el plugin Comet Cache lleva desde 2017 sin actualizarse realmente, aunque sigue en el repositorio de plugins de WordPress (situación realmente extraña. ..). Veamos:

  • Última actualización real: 2017 (versión 170220). La ficha muestra «actualizado hace 1 año» porque WordPress.org a veces refresca metadatos aunque el código no cambie, pero el changelog no miente: ocho años sin tocar el core del plugin.
  • Las reseñas más recientes (incluida una de diciembre de 2025) lo describen literalmente como un «zombie» que aparece como «actualizado recientemente» en el listado de plugins pero cuya última versión real sigue siendo la de 2017. wordpress
  • El «Tested up to 6.9.5» que aparece en la ficha es automático/cosmético, no significa que alguien lo haya probado de verdad contra esa versión de WP.
  • Un plugin de caché sin mantenimiento es un riesgo de seguridad mayor que uno normal, porque toca puntos sensibles: wp-config.php, advanced-cache.php, reglas de .htaccess, interceptación de requests antes de que cargue WordPress. Si aparece una vulnerabilidad ahí, nadie la va a parchear.

Por eso y por lo que acabo de leer lo he desinstalado,  tanto aquí como en Puntocomunica.com,. Mantengo Autoptimize e instala el plugin WP Fastest Cache.

Creo que es una buena elección. Ya veremos…

🔥🧱Qué es un cortafuegos para tu web y por qué Wordfence te lo pone fácil (en WordPress)

Imagina que tu web de WordPress es una tienda física. Tiene una puerta de entrada por la que pasan clientes todos los días: algunos vienen a comprar, a leer, a contactarte. Pero también hay quien se acerca con malas intenciones: intentar forzar la caja registradora, colarse por la trastienda o hacerse pasar por un empleado.

Un firewall de aplicaciones web, o WAF por sus siglas en inglés, es básicamente el portero de tu tienda. Revisa a todo el que entra antes de dejarlo pasar, y si detecta que alguien viene con herramientas para hacer daño, lo frena en seco.

¿De qué te protege exactamente?

Sin entrar en tecnicismos, los ataques más habituales que sufren las webs de WordPress son estos: Continuar leyendo «🔥🧱Qué es un cortafuegos para tu web y por qué Wordfence te lo pone fácil (en WordPress)»

Crear atributos en WooCommerce y mejorar tiempo de carga

woocommerceDos interesantes artículos de woodemia.com sobre la optimización de Woocommerce, el plugin de WordPress que permite implementar una tienda online totalmente funcional en una web. Woocommerce incluye todo lo necesario para empezar a vender en línea.

Añadir más productos a la página de tienda de Woocommerce

woocommercePágina de la documentación de Woocommerce en donde se explica cómo cambiar el número de productos en la página de tienda de Woocommerce. Código a añadir en el archivo functions.php:

// Display 24 products per page. Goes in functions.php add_filter( 'loop_shop_per_page', create_function( '$cols', 'return 24;' ), 20 );

https://docs.woocommerce.com/document/change-number-of-products-displayed-per-page/

El plugin ‘Display Widgets’ de WordPress, ‘comprometido’

El plugin Dispaly Widgets de WordPres, compometido
Post recuperado de KnowHow…

Valencia, 15/09/2017, G.B.

Hace un par de días que intento actualizar el plugin de WordPress ‘Display Widgets‘ sin éxito. Al principio pensaba que era alguna incompatibilidad con algún otro plugin, pero me pasaba en sitios distintos, con distintas combinaciones de plugins. 
He estado apunto de desactivar todos los plugins e ir activándolos uno a uno hasta descubrir cual era el que provocabala stución anómala e WordPress: actualizar un plugin y que te vuelva a ‘pedir’ la actualización del mismo, indefinidas veces…
La verdad es que me he ‘mosqueado’ bastante, pensando que mi ‘sistema’ estaba comprometdo, o que había alguna incompatibildad entre las actualizaciones de plgins (cos, por desgracia, demasiado común). Al final, he dado con un tweet que explica que el problema viene del propio plugin Display Widgets. La solución, por desgracia, es desactivarlo. Es una verdadera lástima, ya que el plugin cumplía muy bien su función.

Os dejo un enlace explicativo al respecto (en inglés):
https://pagely.com/blog/2017/09/malicious-code-display-widgets/

GIGA Slider, otro interesante plugin de WordPress para pase de ‘diapositivas’

Un post rápido…

GIGA Slider, otro interesante plugin de WordPress para pase de 'diapositivas'

Valencia, 14/05/2016

Hay muchos, muchos plugins de WordPress para generar y embeber diapositivas de imágenes e incluso vídeos en nuestra weblog en WordPress. Hoy he probado otro: GIGA Slider, disponible desde el repositorio de plugins de WordPress. Me ha gustado bastante, y eso que he instalado la versión ‘light’ o gratuita…
Como siempre,con la opción comercial (de pago)  dispones de más características y ventajas. Aún así, el plugin GIGA Slider te permite en su versión gratuita hacer cosas interesantes, tanto a través del shortcodes para embeber el slide o pase de diapositivas donde quieras (página o entrada), como la posibilidad de insertarlo vía código también donde tú quieras. Seguiré probándolo. Hasta pronto!

GIGA Slider is a quick and useful wordpress plugin to add a custom sliders to your WordPress based website posts or pages. This GIGA Slider support adding unlimited amount of slides for every slider with a title and description for each slide. GIGA Slider is a great way to create stunning image slider and video slider for your WordPress website. The plugin supports images, YouTube, Vimeo . It’s fully responsive, works on iPhone, iPad, Android, Firefox, Chrome, Safari, Opera and Internet Explorer