TableField

Proporciona un tipo de campo flexible para almacenar y mostrar datos tabulares con soporte para importación/exportación CSV, reordenamiento de filas mediante arrastrar y soltar, y encabezados personalizables.

tablefield
18,339 sites
74
drupal.org

Install

Drupal 11, 10 v3.0.0
composer require 'drupal/tablefield:^3.0'
Drupal 9 v8.x-2.5
composer require 'drupal/tablefield:8.x-2.5'

Overview

TableField es un módulo de tipo de campo completo que permite a los autores de contenido ingresar, gestionar y mostrar datos tabulares directamente dentro de las entidades de Drupal. Proporciona una interfaz de widget fácil de usar donde los usuarios pueden definir las dimensiones de la tabla, ingresar valores en las celdas y opcionalmente especificar títulos de tabla para accesibilidad.

El módulo soporta múltiples métodos de entrada incluyendo edición directa de celdas, importación de archivos CSV y funcionalidad de copiar y pegar desde aplicaciones de hojas de cálculo como Excel. Las tablas pueden redimensionarse dinámicamente ajustando el número de filas y columnas, y las filas pueden reordenarse mediante arrastrar y soltar. El campo soporta tanto texto plano como texto filtrado (con selección de formato de texto) para el contenido de las celdas.

Para la visualización, el formateador ofrece opciones para designar la primera fila y/o primera columna como encabezados de tabla. Una función opcional de exportación CSV permite a los usuarios con los permisos apropiados descargar los datos de la tabla. El módulo también proporciona una propiedad computada para integración con Search API, habilitando la búsqueda de texto completo del contenido de las tablas.

Features

  • Tipo de campo personalizado para almacenar datos tabulares en formato blob serializado con soporte para títulos y formatos de texto
  • Widget flexible con tipos de entrada configurables (campo de texto o área de texto) para la entrada de datos en celdas
  • Reconstrucción dinámica de tablas que permite a los usuarios cambiar el número de filas y columnas mediante AJAX
  • Reordenamiento de filas mediante arrastrar y soltar con ordenación basada en peso
  • Importación de archivos CSV con detección automática de codificación (UTF-8, ISO-8859-1, WINDOWS-1251)
  • Funcionalidad de importación por copiar y pegar soportando varios delimitadores (TAB, coma, punto y coma, barra vertical, más, dos puntos)
  • Funcionalidad de exportación CSV para descargar datos de tablas
  • Soporte de título de tabla para mejorar la accesibilidad y compatibilidad con lectores de pantalla
  • Función de bloqueo de celdas para prevenir la edición de valores predeterminados (útil para encabezados fijos)
  • Soporte de formato de texto que permite texto filtrado con formatos de entrada seleccionables por el usuario
  • Reglas de vacío configurables para determinar cuándo un tablefield debe considerarse vacío
  • Integración con el módulo responsive_tables_filter para visualización responsiva de tablas
  • Propiedad computada table_value para indexación con Search API
  • Permisos granulares para operaciones de exportación, importación, reconstrucción, pegado y adición de filas

Use Cases

Tabla de Especificaciones de Producto

Crear un campo en tipos de contenido de productos para mostrar especificaciones técnicas en un formato de tabla estructurado. Establecer la primera fila como encabezado con nombres de especificaciones (ej., 'Dimensión', 'Peso', 'Material') y permitir a los editores de contenido llenar valores para cada fila. Habilitar exportación CSV para que los clientes puedan descargar las especificaciones.

Matriz de Precios

Construir una tabla de precios con encabezados fijos usando la función lock_values. Establecer valores predeterminados para los encabezados de columna (ej., 'Plan', 'Mensual', 'Anual') y bloquearlos para que los editores solo puedan modificar los valores de precios. Usar la primera columna como encabezado de fila para nombres de planes.

Horario o Calendario

Crear horarios de eventos o calendarios de clases usando TableField. Habilitar el tipo de entrada textarea para celdas que necesiten contenido más largo. Usar arrastrar y soltar para reordenar filas fácilmente cuando ocurran cambios en el horario.

Importación de Datos desde Hojas de Cálculo

Permitir a los editores de contenido poblar tablas rápidamente copiando datos desde Excel o Google Sheets usando la funcionalidad de pegar. Seleccionar TAB como separador de columnas para importación sin problemas desde aplicaciones de hojas de cálculo.

Tablas Comparativas

Construir tablas de comparación de características con el submódulo cellspan para crear celdas de encabezado fusionadas que abarquen múltiples columnas. Usar #colspan# para agrupar características relacionadas bajo encabezados de categoría.

Constructor de Formularios con Campos Requeridos

Usar el submódulo tablefield_required para crear tablas de entrada de datos donde filas o columnas específicas deben ser completadas, como filas de información de contacto obligatoria en un formulario de registro.

Tips

  • Usar el ajuste 'Bloquear valores predeterminados de celdas' para crear tablas con encabezados fijos que los editores de contenido no pueden modificar
  • Habilitar 'Mostrar primera columna como encabezado de tabla' en el formateador para tablas donde la primera columna contiene etiquetas de fila
  • Al importar desde Excel, usar TAB como separador de columnas en el diálogo de importación por pegado
  • Establecer conteos predeterminados significativos de filas y columnas en los ajustes globales para reducir la necesidad de reconstruir tablas
  • Usar el campo de título de tabla para proporcionar contexto a lectores de pantalla y mejorar la accesibilidad
  • Considerar habilitar la selección de formato de texto (texto filtrado) solo cuando se necesite formato HTML en las celdas, ya que agrega complejidad
  • Para grandes conjuntos de datos, permitir el permiso de importación CSV para habilitar la entrada de datos masiva eficiente

Technical Details

Admin Pages 1
Configuración de Tablefield /admin/config/content/tablefield

Configura los ajustes predeterminados globales para todas las instancias de TableField incluyendo el carácter separador CSV y las dimensiones predeterminadas de la tabla.

Permissions 6
Exportar datos de Tablefield como CSV

Permite a los usuarios exportar datos de tablas como archivos CSV cuando la opción de exportación está habilitada en el campo.

Reconstruir cualquier tablefield

Permite a los usuarios cambiar el número de filas y columnas en una tabla cuando la opción restrict_rebuild está habilitada en el campo.

Importar en cualquier tablefield

Permite a los usuarios importar archivos CSV en campos de tabla cuando la opción restrict_import está habilitada en el campo.

Pegar en cualquier tablefield

Permite a los usuarios pegar datos desde aplicaciones de hojas de cálculo en campos de tabla.

Permitir cambios en la configuración global del módulo tablefield

Otorga acceso a la página de configuración de TableField en /admin/config/content/tablefield.

Cambiar filas en tablefield

Permite a los usuarios agregar filas a campos de tabla usando el botón Agregar Fila.

Hooks 1
hook_tablefield_encodings_alter

Permite a los módulos alterar la lista de codificaciones de caracteres soportadas para importación CSV. Por defecto, TableField soporta UTF-8, ISO-8859-1 y WINDOWS-1251.

Troubleshooting 5
La exportación CSV produce caracteres ilegibles

Asegurar que los datos fuente usen codificación UTF-8. Verificar si el separador CSV en los ajustes del módulo coincide con el delimitador esperado por su aplicación de hoja de cálculo.

Las filas de la tabla no se pueden arrastrar

Las filas que contienen celdas bloqueadas no pueden reordenarse. Eliminar el ajuste lock_values o asegurar que la fila no tenga celdas bloqueadas para habilitar arrastrar y soltar.

El botón de importar no aparece

La funcionalidad de importación requiere tanto el permiso 'import tablefield' como el ajuste de campo restrict_import correctamente configurados. Otorgar el permiso a los roles apropiados.

Los datos pegados aparecen en columnas incorrectas

Seleccionar el separador de columnas correcto que coincida con sus datos fuente. Los datos copiados desde Excel típicamente usan separadores TAB.

La tabla aparece vacía pero el campo muestra que tiene contenido

Verificar los ajustes de empty_rules. Si 'ignore_table_structure' está desmarcado, una tabla con dimensiones diferentes a las predeterminadas se considera no vacía incluso sin contenido en las celdas.

Security Notes 3
  • El módulo sanitiza el contenido de las celdas a través del sistema de formato de texto de Drupal cuando cell_processing está habilitado
  • La exportación CSV requiere tanto el ajuste 'export' a nivel de campo como el permiso 'export tablefield'
  • Las operaciones de importación y reconstrucción pueden restringirse a permisos específicos para prevenir modificación de datos no autorizada