Convierte cualquier resultado de consulta, selección del grid o tabla en Beekeeper Studio en una tabla dinámica y compártela como libro de Excel, PDF, imagen, Markdown, CSV, HTML o JSON.

Grabado en el entorno de desarrollo del plugin con 5,000 pedidos de ejemplo. Ligeramente acelerado.
Funciones de un vistazo
| Arrastrar y soltar | Filas, Columnas, Valores y Filtros, como una tabla dinámica de hoja de cálculo |
| 11 agregaciones | Conteo, conteo de distintos, suma, promedio, mínimo, máximo, mediana, desviación estándar, varianza, primero, último |
| % del total | Muestra cualquier valor como porcentaje del total general, de fila o de columna |
| Agrupación por fechas | Año, trimestre, mes, semana, día, hora, mes del año, día de la semana |
| Filtros y ordenamiento | Elige valores con búsqueda y conteos; ordena A→Z, Z→A o por valor |
| Diseño | Totales, subtotales, valores en columnas o filas, decimales fijos, mapa de calor |
| 8 formatos de exportación | Excel, Excel + datos de origen, PDF, PNG, Markdown, CSV, HTML, JSON |
| 3 formas de copiar | Celdas de hoja de cálculo, tabla Markdown, imagen |
| Cualquier fuente de datos | Selecciones del grid, consultas, tablas (con los filtros de la pestaña), hasta 100,000 filas |
| Se integra | Sigue el tema claro u oscuro, guarda el diseño de cada pestaña y se ejecuta localmente sin llamadas de red |
Cómo crear una tabla dinámica
Cada columna de los datos aparece en la lista de Campos. Arrastra un campo a una zona, o haz clic en él y elige a dónde va:
- Filas y Columnas agrupan los datos. Apila varios campos para anidar grupos y arrastra los chips para reordenarlos. Intercambiar invierte filas y columnas.
- Valores son los números de las celdas. Puedes agregar el mismo campo más de una vez, por ejemplo para mostrar su suma y su promedio lado a lado. Sin valores, la tabla dinámica cuenta filas.
- Filtros acotan los datos sin agregar una fila o columna.
Arrastra un chip de vuelta a la lista de campos para quitarlo. Haz clic en cualquier chip para ver sus opciones.
Una tabla dinámica nueva empieza con un diseño sugerido:
- Filas: una columna tipo categoría, como
status,planocountry. - Columnas: la fecha principal, agrupada por día, mes, trimestre o año según el rango de los datos. Va en Filas si no hay columna de categoría.
- Valores: la suma de una columna tipo monto, como
total,amountoquantity, o un conteo de filas si no hay ninguna.
No se usan ids, columnas casi vacías, texto libre ni timestamps como updated_at. Restablecer diseño en Opciones vuelve a la sugerencia.
Resumir valores
Haz clic en un chip de valor para cambiar lo que muestra:
| Resumir por | Funciona con |
|---|---|
| Conteo, conteo de distintos | Cualquier columna, o filas si no eliges un campo |
| Suma, promedio, mediana, desviación estándar, varianza | Números, incluido texto numérico |
| Mínimo, máximo | Números, fechas y texto |
| Primero, último | Cualquier columna |
Mostrar como convierte un valor en porcentaje del total general, del total de su fila o del total de su columna.
Agrupar, filtrar y ordenar
Haz clic en un chip de fila, columna o filtro para:
- Agrupar fechas por año, trimestre, mes, semana ISO, día, hora, mes del año o día de la semana. Las fechas se agrupan tal como están en la base de datos, así que las zonas horarias no las desplazan.
- Mostrar valores: una lista de cada valor con su conteo de filas, un cuadro de búsqueda, Todos / Ninguno y “solo” para quedarte con un único valor. Los chips filtrados se resaltan.
- Ordenar etiquetas A→Z o Z→A (los números se ordenan numéricamente y los nulos van al final), o por el tamaño del primer valor, de mayor a menor o de menor a mayor.
Opciones de diseño
En Opciones de la barra lateral:
- Columna de totales y fila de totales para totales generales, y subtotales para cada grupo cuando las filas o columnas están anidadas.
- Valores en columnas o filas, para tablas dinámicas con varios valores.
- Decimales: automático (los enteros se quedan enteros, otros valores usan 2 decimales, los porcentajes 1) o un valor fijo de 0 a 4 decimales.
- Mapa de calor sombrea cada valor del más pequeño al más grande.
El título de arriba le da nombre a la pestaña y aparece en las exportaciones.
Exportar y compartir
Exportar guarda un archivo. Las exportaciones siempre contienen toda la tabla dinámica, aunque el grid en pantalla solo muestre las primeras filas de una muy grande.
| Formato | Qué obtienes |
|---|---|
| Excel | Encabezados combinados, formatos de número y porcentaje, totales en negritas y filas de encabezado y columnas de etiquetas inmovilizadas |
| Excel + datos de origen | El mismo libro con una segunda hoja con las filas cargadas, lista para volver a pivotear en Excel |
| Horizontal cuando es ancha. Se reduce para ajustarse cuando puede y divide las tablas muy anchas en páginas que repiten las etiquetas de fila | |
| Imagen | Un PNG nítido con título, origen y filtros, listo para presentaciones, documentos o chat |
| Markdown | Una tabla estilo GitHub para READMEs, issues y wikis |
| CSV | Una fila de encabezado y números sin formato, con las etiquetas de fila repetidas en cada fila |
| HTML | Una página independiente con estilos que conserva los encabezados combinados |
| JSON | Un objeto por fila, con el encabezado de columna como clave |
Copiar pone la tabla dinámica en el portapapeles como celdas de hoja de cálculo (se pega en Excel o Google Sheets, porcentajes incluidos), como tabla Markdown o como imagen.
Este es el PNG que genera la exportación como Imagen para la tabla dinámica del demo:

Abrir una tabla dinámica
| Dónde | Opción del menú | Datos usados |
|---|---|---|
Menú desplegable de nueva pestaña (junto a +), menú Herramientas |
Pivot Table | Una consulta o tabla elegida en el plugin |
| Resultados de consulta o datos de tabla: clic derecho en una celda o en la esquina superior izquierda | Pivot Table from Selection | Las celdas seleccionadas |
| Encabezado de la pestaña de consulta o menú contextual del editor de consultas | Pivot Query Results | La consulta, ejecutada de nuevo con un límite de filas |
| Tabla en la barra lateral o encabezado de una pestaña de tabla | Open in Pivot Table | La tabla, con los filtros de la pestaña como cláusula WHERE |
Para pivotear todo un conjunto de resultados desde el grid, primero selecciona todas las celdas (haz clic en la esquina superior izquierda del grid o presiona Ctrl/Cmd+A) y luego da clic derecho.
Puedes cambiar la fuente de datos en cualquier momento con el botón de lápiz de la barra lateral, que acepta una consulta SQL o una tabla con una cláusula WHERE opcional. SQL en la barra de estado muestra la consulta exacta que cargó los datos.
Límites de filas
Las tablas dinámicas se calculan en el plugin, así que los datos se cargan con un límite de filas: 10,000 filas por defecto, configurable hasta 100,000 (la elección se recuerda).
- Las consultas se envuelven como
SELECT * FROM (<query>) AS pivot_source LIMIT n(TOPen SQL Server,ROWNUMen Oracle,FIRSTen Firebird), así que la base de datos aplica el límite. - Si la base de datos rechaza la consulta envuelta (por ejemplo, un CTE en SQL Server), un aviso te ofrece ejecutar la consulta tal como está y quedarte con las primeras filas. Las sentencias que pueden modificar datos nunca se vuelven a ejecutar sin confirmación.
- Las bases de datos sin subconsultas SQL (MongoDB, Redis, Cassandra y similares) ejecutan la consulta tal como está y se quedan con las primeras filas.
- Un aviso aparece cuando se alcanza el límite. Los totales solo cubren las filas cargadas.
- Al reabrir una pestaña guardada, las fuentes de consulta esperan a que hagas clic en Ejecutar consulta en lugar de ejecutarse automáticamente. Las selecciones y tablas se cargan de inmediato.
Temas claro y oscuro
El plugin usa los colores del tema de Beekeeper Studio y cambia junto con la app.
| Claro | Oscuro |
|---|---|
![]() |
![]() |
Instalación
Una vez publicado, instala Pivot Tables desde Tools → Manage Plugins en Beekeeper Studio (5.5 o posterior).
Para instalar una versión manualmente, descarga bk-plugin-pivot-tables-<version>.zip desde los releases y extráelo en el directorio de plugins de Beekeeper Studio:
- Linux:
~/.config/beekeeper-studio/plugins/bk-plugin-pivot-tables - macOS:
~/Library/Application Support/beekeeper-studio/plugins/bk-plugin-pivot-tables - Windows:
%APPDATA%\beekeeper-studio\plugins\bk-plugin-pivot-tables
Desarrollo
yarn install
yarn dev # links the project into Beekeeper's plugins directory and serves it with hot reload
yarn harness # runs the plugin in a browser against a fake Beekeeper Studio
yarn test:run # unit tests (Vitest)
yarn typecheck
yarn build # production build into dist/
yarn package # release zip in release/ (after yarn build)
yarn dev usa @beekeeperstudio/vite-plugin, que crea un symlink del proyecto en el directorio de plugins. Activa los plugins en Beekeeper Studio y abre una tabla dinámica desde cualquiera de los menús de arriba.
yarn harness sirve dev/host.html en http://localhost:5199/dev/host.html. Aloja el plugin en un iframe y responde sus solicitudes de API desde una base de datos SQLite en memoria con 5,000 pedidos de ejemplo, así puedes trabajar en la UI y las exportaciones sin Beekeeper Studio. Parámetros de consulta:
command=new-pivot|pivot-selection|pivot-query|pivot-tableelige la opción de menú que se emula.theme=light|darkdefine el tema.fresh=1borra el estado guardado de la pestaña.prod=1carga el build de producción desdedist/(ejecutayarn buildprimero).
docs/demo.gif se graba desde el harness con scripts/record-demo.cjs, así que se puede volver a grabar tras cambios en la UI. Con yarn harness en ejecución:
npm install -g playwright && npx playwright install chromium # once; also needs ffmpeg
NODE_PATH="$(npm root -g)" node scripts/record-demo.cjs
Estructura del proyecto
manifest.json Plugin manifest: one view, menu entries for each way of opening it
src/App.vue Startup, data loading, state persistence, export actions
src/components/ Field list, drop zones, menus, pivot table renderer, source editor
src/lib/pivot/ Pivot engine, aggregators, date grouping, grid layout (headers and spans)
src/lib/source/ Loading data: selections, queries and tables with dialect-aware row limits
src/lib/export/ Excel, PDF, image, Markdown, CSV, HTML and JSON exporters
tests/ Vitest specs
dev/ Browser harness that emulates Beekeeper Studio
El motor de tablas dinámicas genera un grid de celdas con extensiones de filas y columnas (src/lib/pivot/grid.ts). La tabla en pantalla y cada exportador se renderizan desde ese grid, así que todos muestran el mismo diseño.
Publicación
- Ejecuta
bin/make-release.sh. Sugiere la siguiente versión a partir de los tags existentes, estableceversionenmanifest.jsonypackage.json, hace commit y sube un tag correspondiente comov1.0.0. - El workflow de release ejecuta pruebas, compila y crea un release de GitHub en borrador con
manifest.jsonybk-plugin-pivot-tables-<version>.zip. Revísalo y publícalo. - Para aparecer en el Plugin Manager, agrega una entrada a
plugins.jsonen beekeeper-studio-plugins.
Limitaciones
- Los filtros de las pestañas de tabla se pasan a los plugins en las versiones de Beekeeper Studio que incluyen el cambio de filtros de
serializeTab. Las versiones anteriores abren toda la tabla (con el límite de filas); aun así puedes escribir una cláusulaWHEREen el editor de origen. - El grid muestra las primeras 500 filas y 300 columnas de tablas dinámicas muy grandes (“Mostrar más” carga más filas). Las exportaciones siempre incluyen todo.
- Las imágenes incluyen las primeras 2,000 filas.
- Las exportaciones a PDF no pueden dibujar caracteres CJK, que la fuente DejaVu incluida no cubre.
Licencia
GPL-3.0. Incluye las fuentes DejaVu (licencia Bitstream Vera) para las exportaciones a PDF.

