Spreadsheets

Descripción generalDocumentaciónDemosVídeosHistorial de versiones

Documentación de Spreadsheets

Table of contents

Spreadsheets Extension para Qlik

Descarga e Instalación

Qlik Sense Desktop

Para instalar Spreadsheets Extension en Qlik Sense Desktop, haga lo siguiente: 

  1. Descargue Spreadsheets Extension para Qlik Sense. 
  2. Extraiga el archivo. 
  3. Abra una ventana del Explorador de Windows y navegue hasta el directorio de Qlik Sense Extensions: 
    ..\Users\<UserName>\Documents\Qlik\Sense\Extensions. 
  4. Copie la carpeta anychart-4x-spreadsheets al directorio Extensions. 
  5. Reinicie Qlik Sense Desktop. 

Qlik Sense Server

Para instalar Spreadsheets Extension en un servidor de Qlik Sense, 

  1. Descargue Spreadsheets Extension para Qlik Sense. 
  2. Abra Qlik Management Console (QMC): https://<QPS server name>/qmc 
  3. Seleccione Extensions en la página de inicio de QMC o desde el menú desplegable Start. 
  4. Haga clic en Import en la barra de acciones. 
  5. En el cuadro de diálogo, seleccione el archivo descargado. Deje el área de contraseña en blanco. 
  6. Haga clic en Open en la ventana del explorador de archivos. 
  7. Haga clic en Import. 

Qlik Sense Cloud

Para instalar Spreadsheets Tree Extension en Qlik Sense Cloud, haga lo siguiente: 

  1. Descargue Spreadsheets Extension para Qlik Sense Cloud. 
  2. Extraiga el archivo. 
  3. Acceda a la Management Console: 
    1. añada /console a la dirección de su tenant: https://<your tenant address>/console 
    2. o use el enlace de navegación Administration bajo el perfil de usuario en el hub 
  4. Vaya a la página Extensions y haga clic en Add. 
  5. En el cuadro de diálogo, seleccione el archivo con la Extension en el bundle – por ejemplo, anychart-4x-spreadsheets.zip. 
  6. Haga clic en Add. 
  7. Repita los pasos anteriores para añadir otras Extensions. 
  8. En la Management Console, vaya a la sección Content Security Policy y haga clic en Add. 
  9. En el cuadro de diálogo, asigne un nombre a la Content Security Policy – por ejemplo, AnyChart. 
  10. Escriba la dirección del servidor de origen: qlik.anychart.com 
  11. Seleccione las siguientes directivas: 
    1. connect-src 
    2. font-src 
    3. img-src 
    4. script-src 
    5. style-src 
  12. Haga clic en Add. 

Descripción general

AnyChart Spreadsheets ofrece una potente experiencia de edición de tablas similar a Excel directamente en Qlik Sense. Con soporte para fórmulas nativas de Excel, formato enriquecido, configuraciones de varias hojas y exploración de datos interactiva, esta Extension permite a los usuarios manipular y analizar datos con la flexibilidad de una hoja de cálculo completa.

Explore la sección Quick Start para obtener experiencia práctica con la Spreadsheets Extension.

 

Quick Start

Crear una tabla básica

Este tutorial le guiará a través de la creación de una visualización básica de Spreadsheets desde cero.

Videotutorial

Paso 1: Añadir una visualización vacía

  1. En su aplicación de Qlik Sense, vaya al Assets Panel
  2. Navegue hasta Custom objects > AnyChart 4
  3. Arrastre la visualización Spreadsheets a su hoja. 

Paso 2: Activar Autosave

  • Seleccione la visualización y abra el Properties Panel.
  • Vaya a la sección Settings -> Autosave
  • Seleccione la opción de almacenamiento Browser IndexedDB
     

Paso 3: Añadir una Data Section

  1. Vaya a la sección Data. 
  2. Haga clic en el botón Add para crear una nueva Data Section. 
  3. Seleccione la Data Section recién creada. 
  4. Asegúrese de que el interruptor Create synced sheet esté activado. 
  5. Haga clic en Edit data y seleccione Data . 
  6. Añada las Columns deseadas. 

 

Tras completar estos pasos, su visualización contendrá: 

  • Una hoja vacía: Sheet1 
  • Una hoja poblada con datos de la Data Section: DataSheet1 

 

image1.png

Paso 4: Formatear la hoja de cálculo

  1. Eliminar la hoja vacía:
    1. Haga clic con el botón derecho en Sheet1 y seleccione Delete.
  2. Crear una tabla en la hoja de datos restante:
    1. Seleccione todas las celdas que contienen datos.
    2. Vaya a la sección INSERT en el Ribbon Menu.
    3. Haga clic en Table, luego confirme en la ventana emergente.
  3. Ajustar el formato:
    1. Cambie el tamaño de las columnas y filas según sea necesario.
    2. Personalice los estilos de fuente usando la pestaña HOME.
    3. Seleccione sus celdas de encabezado y use las herramientas de alineación bajo Font Alignment.


3.png

 

 


 

Paso 5: Añadir un Chart

  1. Seleccione todas las celdas que contienen datos. 
  2. Vaya a la pestaña INSERT en el Ribbon Menu. 
  3. Haga clic en Insert Chart y elija un tipo de chart que se adapte a sus datos. 
  4. Haga clic en OK. 

Reposicione su chart en cualquier lugar de la hoja.

Opcional: Exportar su hoja de cálculo a Excel

Si desea seguir trabajando en otra herramienta como Excel: 

  1. Vaya a la pestaña FILE en el Ribbon Menu. 
  2. Haga clic en Export
  3. Seleccione la opción Excel file
  4. Configure sus ajustes de exportación usando Save Flags
  5. Haga clic en el botón Export Excel File
  6. Nombre su archivo en la ventana emergente y haga clic en OK. 

Después de eso, la descarga comenzará automáticamente y su archivo .xlsx estará listo para abrirse en Excel o cualquier software compatible. 

Usar una plantilla de Excel existente

 

Esta guía le explica cómo usar la AnyChart Spreadsheets Extension en Qlik Sense para convertir una plantilla de Excel en una hoja de cálculo totalmente interactiva y basada en datos. 

Videotutorial

Requisitos previos

  • Aplicación de Qlik Sense con la AnyChart Spreadsheets Extension instalada 
  • Archivo de plantilla: personal-bundet.xlsx 

Paso 1: Cargar datos en Qlik

  1. Suba el archivo personal-budget.xlsx a los Attached Files de su aplicación de Qlik. 
  2. Abra el Data Load Editor y use el siguiente script para cargar las tablas Budget y Transactions: 
LOAD 
Category, 
Budget 
FROM [lib://AttachedFiles/personal-budget.xlsx] 
(ooxml, embedded labels, header is 3 lines, table is Budget) 
Where Upper(Trim(Category)) <> 'TOTAL'; 
LOAD 
"Date", 
Description, 
Category, 
Amount 
FROM [lib://AttachedFiles/personal-budget.xlsx] 
(ooxml, embedded labels, header is 1 lines, table is Transactions); 
  1. Haga clic en Load Data. 

Paso 2: Añadir la Spreadsheets Extension

  1. Cree una nueva hoja en su aplicación de Qlik y ábrala. 
    Entre en Edit Mode
  2. Desde la sección Custom Objects > AnyChart, arrastre la visualización Spreadsheets Table al lienzo. 

Paso 3: Activar Autosave

  1. Seleccione la visualización y abra el Properties Panel.
  2. Vaya a la sección Settings -> Autosave
     

Paso 4: Importar la plantilla de Excel

  1. Con la visualización seleccionada, vaya a la pestaña FILE en el ribbon menu. 
  2. Haga clic en Import Excel File
  3. Seleccione el archivo personal-budget.xlsx

La plantilla contiene dos hojas: 

  • Una hoja Budget 
  • Una hoja Transactions 

Paso 5: Crear Data Sections

  • Abra el Properties Panel y navegue hasta la pestaña Data. 
  • Haga clic en Add para crear la primera Data Section: 
    • Añadir dimensión: 
      • Category 
    • Añadir medidas: 
      • Sum(Budget) 
      • Sum(Amount) 
      • Sum(Budget) - Sum(Amount) 
  • Haga clic en Add de nuevo para crear la segunda Data Section: 
    • Añadir dimensiones: 
      • Date 
      • Description 
      • Category 
    • Añadir medida: 
      • Sum(Amount) 
  • Personalice las etiquetas de medida (por ejemplo, cambie el nombre de Sum(Amount) a Amount ). 

Paso 6: Preparar la plantilla para los datos de Qlik

  1. Cambie a cada hoja en la vista de hoja de cálculo. 
  2. Borre los valores de celda estáticos donde se inyectarán los datos de Qlik. 
  3. Establezca el formato de esas celdas en General usando el ribbon (esto es importante para que las fórmulas funcionen correctamente). 

Paso 7: Insertar fórmulas QLIK.DATA

Hoja Budget
  1. En la celda inicial de la tabla de presupuesto (por ejemplo, A4), introduzca: 

=QLIK.DATA(0,,,TRUE,”TOP”) 

Esto extrae datos de la primera Data Section y habilita tanto etiquetas como totales. 

  1. Formatee las celdas de datos (por ejemplo, las columnas Budget, Amount y Difference) como Currency
Hoja Transactions
  1. En la celda inicial de la tabla de transacciones (por ejemplo, A2 ), introduzca: 

=QLIK.DATA(1,,,TRUE) 

Esto utiliza la segunda Data Section y muestra etiquetas. 

  1. Formatee la columna Date como Short Date , y la columna Amount como Currency

Paso 8: Formateo final y Guardar

  1. Realice cualquier ajuste final de formato. 
  2. Haga clic en la pestaña USER en el ribbon y seleccione Save to app para almacenar sus cambios. 

Resultado

Ahora tiene una hoja de cálculo totalmente interactiva que combina: 

  • Un diseño familiar de Excel 
  • Datos de Qlik en vivo 
  • Cálculos dinámicos usando QLIK.DATA 

Demos

Próximamente. 

Hojas

La Spreadsheets Extension permite trabajar en varias hojas —al igual que en Excel— lo que le permite organizar sus datos, cálculos y diseños a través de capas lógicas de un libro de trabajo. 

Cada hoja puede contener una mezcla de: 

  • Valores estáticos — texto o números escritos manualmente. 
  • Funciones — incluyendo referencias a otras celdas, rangos o cálculos. 
  • Celdas vinculadas a datos — pobladas dinámicamente desde datos de Qlik o fórmulas QLIK. 

Las hojas son totalmente independientes: 

  • Puede usar diferentes diseños y diseños por hoja. 
  • Cada hoja puede mostrar diferentes datos de hypercube o ninguno en absoluto. 
  • La estructura y el formato de una hoja no interferirán con otra. 

Referencias entre hojas

Al igual que en Excel, puede hacer referencia a celdas de otras hojas usando el formato SheetName!CellReference

Por ejemplo: =Sheet2!A1 

Esta fórmula extrae el valor de la celda A1 de una hoja llamada Sheet2

Esto facilita la creación de hojas de resumen, la agregación de valores o la construcción de dashboards que combinan resultados de varias hojas. 

Puede cambiar el nombre de las hojas y reorganizar sus pestañas libremente, lo que ofrece flexibilidad en la forma de diseñar la estructura del libro. 

Datos

La Spreadsheets Extension introduce un modelo de datos que integra el motor asociativo de Qlik con un entorno de edición flexible similar a Excel. Esta sección trata sobre cómo se estructuran los datos de Qlik dentro de la Extension y cómo se pueden conectar al contenido de la hoja de cálculo. 

Data Sections

Las Data Sections definen conjuntos de datos reutilizables construidos a partir de dimensiones y medidas de Qlik. Actúan como puente entre Qlik y el lienzo de Spreadsheets. 

Descripción general de las Data Sections

  • Una Data Section consta de Columns, donde cada columna es una Dimension o una Measure de Qlik. 
  • El orden de las Columns es personalizable. 
  • Las Data Sections se gestionan desde el Properties Panel de la Spreadsheets Extension. 
  • Cada Data Section puede reutilizarse en hojas o tablas y admite varios modos de conexión (consulte Conexión de Data Sections ). 

Totales

Cada Data Section admite totales automáticos por Measure columns: 

  • Habilite los totales desde la pestaña Presentation de la configuración de la Data Section. 
  • Configurar: 
    • Posición: Top / Bottom / None 
    • Etiqueta: Personalizar texto (por ejemplo, "Total", "Resumen") 

Los totales son calculados por Qlik y se actualizan dinámicamente según las selecciones. 

Columnas

Cada columna en una Data Section representa una dimensión o medida de Qlik, similar a los campos en las tablas nativas de Qlik. Las columnas se representan en la hoja de cálculo para mostrar los valores reales del motor de Qlik. 

Por defecto, las columnas se representan en el orden en que se añaden —de arriba a abajo— empezando por la esquina superior izquierda de la hoja o de la región de datos asignada. 

Rango

Opcionalmente, puede especificar un rango para cada columna para controlar dónde exactamente deben aparecer sus valores en la hoja. 

  • Ejemplo (vertical): C1:C5 colocará los valores de la columna en las celdas C1 a C5. 
  • Ejemplo (horizontal): C3:H3 poblará las celdas horizontalmente a lo largo de la fila 3. 

Solo se mostrarán los valores que quepan dentro del rango definido. Si existen más valores que celdas disponibles, la columna se trunca automáticamente

Garantizar que los rangos de datos quepan en la hoja 

Al utilizar rangos personalizados para las columnas —ya sean verticales (por ejemplo, C1:C10) o horizontales (por ejemplo, C3:H3)— es importante asegurarse de que la hoja de cálculo tenga espacio suficiente para mostrar los datos. 

Los datos representados deben caber dentro del rango actual de la hoja, que está definido por el número de filas y columnas visibles. Si el rango de la columna especificado supera estos límites, algunos datos podrían cortarse, no representarse correctamente o causar un comportamiento inesperado. 

Ajustar las dimensiones de la hoja 

Para evitar estos problemas: 

  1. Vaya a la pestaña Settings en el Ribbon Menu. 
  2. Seleccione General bajo Sheet Settings. 
  3. Aumente el Row Count y/o Column Count según sea necesario. 

6.png

Comportamientos conocidos y limitaciones: 

  • Desplazamiento: Los ajustes de rango pueden afectar al comportamiento del desplazamiento (consulte la sección Desplazamiento ). 
  • Offsets: Si diferentes columnas tienen diferentes posiciones de inicio (por ejemplo, A1, B5, C10), la carga de datos y el desplazamiento se alinearán basándose en el desplazamiento de la primera columna
  • Offsets mixtos: El uso de puntos de inicio no uniformes (como A3, C5, E7) puede dar lugar a huecos o a una representación inesperada durante la carga de datos. 
  • Carga de datos: La primera carga y la carga activada por desplazamiento siempre respetan el desplazamiento de la primera columna al calcular cuántas filas recuperar. 

Conexión de Data Sections

Una vez definida una Data Section, puede conectarla a su hoja de cálculo de tres formas principales: 

Descripción general de las Data Sections

Cada método de conexión ofrece un equilibrio diferente de automatización y control y es adecuado para diferentes casos de uso, teniendo cada uno ciertos pros y contras: 

Método Caso de uso Control Ideal para 
Synced Sheet (por defecto) Poblar automáticamente una nueva hoja con datos Bajo Vistas previas rápidas, una sección/hoja 
Table Binding Vincular una Data Section a una tabla de la hoja de cálculo Medio Vistas de datos tabulares, diseños fijos 
Fórmulas QLIK Insertar datos manualmente mediante fórmulas Alto Plantillas personalizadas, diseños avanzados 

Crear Hoja Sincronizada (Synced Sheet)

  • Se habilita mediante el interruptor "Create Synced Sheet" al añadir una Data Section. 
  • Crea automáticamente una hoja con el nombre de la etiqueta de la sección e inyecta los datos. 
  • Adecuado para iteraciones rápidas y pruebas de nuevas configuraciones de datos. 

🛈 La hoja se actualiza automáticamente si la Data Section cambia. 

Vinculación de tablas (Table Binding)

Vincule una Data Section directamente a una tabla existente dentro de la hoja de cálculo. 

Pasos: 

  1. Seleccione una tabla en la vista de hoja de cálculo. 
  2. Vaya a la pestaña Table Design en el Ribbon Menu. 
  3. Abra el menú desplegable Select Source
  4. Seleccione una Data Section. 

La tabla se poblará automáticamente con los datos de la sección seleccionada, con las columnas mapeadas por orden. 

Esto es ideal para diseños prediseñados o cuando desea utilizar funciones de Excel como fórmulas de tabla estructuradas, formato o charts sobre datos de Qlik en vivo. 

Fórmulas QLIK

Los usuarios avanzados pueden insertar datos manualmente utilizando fórmulas compatibles con Qlik. Estas permiten un control total sobre el diseño y la lógica: 

Además de las funciones de vinculación de datos anteriores, la fórmula QLIK.EXPRESSION() le permite evaluar expresiones arbitrarias de Qlik directamente dentro de la hoja de cálculo — reflejando dinámicamente los cambios en las selecciones de Qlik. 

🛈 Nota: Dado que estas fórmulas se basan en datos de Qlik en vivo, las actualizaciones en la aplicación de Qlik (por ejemplo, filtros, selecciones o cambios en los datos subyacentes) afectarán inmediatamente a la hoja de cálculo. Esto puede dar lugar a que el número de celdas pobladas aumente o disminuya, así que planifique su diseño en consecuencia. 

Para obtener sintaxis detallada y ejemplos, consulte la sección Funciones relacionadas con Qlik

Selecciones de Qlik

Si su Spreadsheet está construida sobre Data Sections, responderá dinámicamente a las selecciones de Qlik. 

También puede realizar selecciones de Qlik directamente desde la Spreadsheets Extension. 

Cómo aplicar una selección desde la Spreadsheet

  1. Seleccione las celdas que desea filtrar. 
  2. Haga clic con el botón derecho en la selección. 
  3. Elija Qlik Select en el menú contextual. 

5.png

La Spreadsheets Extension detectará automáticamente las selecciones válidas y las aplicará a la aplicación de Qlik. 

Funciones de Excel

La Extension admite la mayoría de las funciones nativas de Excel, incluyendo: 

  • Matemáticas y trigonometría: SUM, AVERAGE, ROUND, INT 
  • Lógica: IF, AND, OR, NOT 
  • Texto: CONCATENATE, LEFT, RIGHT, TEXTJOIN 
  • Búsqueda: VLOOKUP, INDEX, MATCH 
  • Fecha y hora: TODAY, NOW, DATEDIF, EOMONTH 
  • Matrices: UNIQUE, SORT, FILTER 

Y muchas otras. 

No dude en explorar la lista completa de funciones de Excel disponibles en la sección Formulas del Ribbon Menu 

6.png

Funciones relacionadas con Qlik

La Spreadsheets Extension admite un conjunto de fórmulas específicas de Qlik que le permiten interactuar con las secciones de datos, extraer valores, etiquetas, totales o evaluar expresiones directamente en las celdas de la hoja de cálculo. 

Cada función se ejecuta de forma asíncrona y devuelve valores dinámicos basados en el modelo asociativo de Qlik. 

QLIK.DATA

Recupera e inserta valores de datos de una Data Section preconfigurada. 

= QLIK.DATA(data_section_label_or_index, [column_label_or_index], [is_horizontal], [show_label], [show_total], [limit]) 

Argumentos:

  • data_section_label_or_index – Etiqueta o índice de la Data Section. 
  • column_label_or_index – (Opcional) Etiqueta o índice de la columna (dimensión o medida). 
  • is_horizontal – (Opcional) Si es verdadero, los datos se rellenan horizontalmente en lugar de verticalmente. 
  • show_label – (Opcional) Si es verdadero, incluye las etiquetas de las columnas. 
  • totals_position – (Opcional, Enum) Controla si se insertan valores de totales y dónde. 
    • "INHERIT" – Utiliza los ajustes de totales definidos en el panel de Qlik (sección de definición). 
    • "TOP" – Inserta los valores de totales por encima del rango de datos. 
    • "BOTTOM" – Inserta los valores de totales por debajo del rango de datos. 
    • "NONE" (por defecto) – No se insertan totales. 
    • 🛈 Los valores no válidos se tratarán como "NONE". 
  • limit – (Opcional) Establece el número máximo de filas (o columnas, si es horizontal) que se devolverán de la Data Section. Esto no es lo mismo que establecer limitaciones en la Data Section; se trata de un límite estricto en el número de filas, utilice la limitación de la Data Section si necesita una limitación adecuada en la medida. 

Casos de uso:

  • Incrustar datos de Qlik en regiones específicas de la hoja de cálculo. 
  • Poblar hojas con múltiples conjuntos de datos de forma independiente. 
  • Mostrar datos cuando no se desea la vinculación automática de hoja a sección. 

QLIK.DATA.LABEL

Devuelve la etiqueta de una dimensión o medida específica de una Data Section. 

=QLIK.DATA.LABEL(data_section_label_or_index, column_label_or_index) 

Argumentos:

  • data_section_label_or_index – Etiqueta o índice de la Data Section. 
  • column_label_or_index – Etiqueta o índice de la dimensión o medida. 

Casos de uso:

  • Mostrar dinámicamente los encabezados de las columnas. 
  • Crear plantillas genéricas o reutilizables con entradas de datos flexibles. 

QLIK.DATA.TOTAL

Devuelve el valor de agregación total para una medida específica en una Data Section. 

=QLIK.DATA.TOTAL(data_section_label_or_index, column_label_or_index) 

Argumentos:

  • data_section_label_or_index – Etiqueta o índice de la Data Section. 
  • column_label_or_index – Etiqueta o índice de la columna. 

Casos de uso:

  • Mostrar filas de totales o KPIs de resumen fuera del bloque de datos principal. 
  • Hacer referencia a totales calculados por Qlik sin necesidad de sumas manuales. 

QLIK.EXPRESSION

Evalúa una expresión de Qlik y devuelve el resultado. 

=QLIK.EXPRESSION("=Today()") 

Argumentos:

  • query_string – Una expresión de Qlik entre comillas (debe empezar con =). 

Casos de uso:

  • Mostrar medidas agregadas (KPI) 
    • =QLIK.EXPRESSION("=Sum(Sales)") 
    • Combine con funciones de hoja de cálculo como el formato condicional para resaltar: 
      • Verde si está por encima del objetivo 
      • Rojo si está por debajo 
  • Mostrar selecciones aplicadas 
    • =QLIK.EXPRESSION("=GetSelectedCount(Country)") 
    • =QLIK.EXPRESSION("=GetFieldSelections(Region, ' | ')") 
  • Mostrar valores del sistema 
    • =QLIK.EXPRESSION("=Now()") 
    • =QLIK.EXPRESSION("=OSUser()") 
    • =QLIK.EXPRESSION("ReloadTime()"

 

Evaluación de expresiones en vivo

Todos los valores devueltos por QLIK.EXPRESSION() son dinámicos y se mantienen actualizados en tiempo real en función de: 

  • Selecciones realizadas en la aplicación de Qlik 
  • Cambios en los datos subyacentes 
  • Contexto del sistema o de la sesión 

Estos valores pueden cambiar entre sesiones o usuarios — ideal para dashboards en vivo o vistas personales. 

Consejo: Utilice esta función junto con la lógica nativa de Excel (IF, TEXT, ROUND, etc.) para crear dashboards inteligentes directamente dentro de la hoja de cálculo. 

Ejemplos prácticos

KPI

Es posible crear KPIs basados en fórmulas de Qlik y luego aplicar reglas de formato condicional para resaltar los resultados visualmente. 

1. Insertar fórmula de KPI 

Introduzca una expresión de Qlik en una celda. Por ejemplo, para calcular el beneficio total: 

=QLIK.EXPRESSION("=GetFieldSelections(Region. '|')") 

7.png

2. Aplicar formato condicional 

Utilice la función Conditional Formatting de Spreadsheet para dar estilo a la celda dinámicamente en función del resultado del KPI. 

Reglas de ejemplo: 

  • Verde si el beneficio total es superior a 2.400.000.000 
  • Rojo si el beneficio total es inferior a 2.400.000.000 

8.png

3. Actualizaciones en vivo 

Cuando se aplican selecciones en Qlik, el valor del KPI se actualizará automáticamente y el formato se volverá a evaluar en tiempo real. 

Esto facilita la creación de dashboards de KPI en vivo donde los indicadores visuales responden instantáneamente a los filtros y selecciones de Qlik. 

Un banner de estado de selección le permite mostrar qué valores están seleccionados actualmente en la aplicación de Qlik. Esto facilita proporcionar contexto dentro de sus informes de hoja de cálculo, asegurando que los usuarios finales siempre sepan qué filtros están activos. 

A diferencia de los KPIs simples, aquí estamos utilizando fórmulas de Qlik más complejas que combinan múltiples funciones ( IF, GetSelectedCount(), GetFieldSelections() ). Esto demuestra que no está limitado a expresiones básicas — es posible construir fórmulas flexibles para adaptarse a sus necesidades exactas de informes. 

1. Insertar fórmulas de selección 

Para mostrar la región seleccionada: 
=QLIK.EXPRESSION("=IF(GetSelectedCount(Region) = 0, 'No selection (All Regions)', GetFieldSelections(Region, ' | '))") 

Para mostrar el país seleccionado: 
=QLIK.EXPRESSION("=IF(GetSelectedCount(Country) = 0, 'No selection (All Countries)', GetFieldSelections(Country, ' | '))") 

2. Resultado con selecciones activas 

Cuando el usuario aplica selecciones en la aplicación de Qlik, el banner se recibe automáticamente para reflejar los valores elegidos. 

Si se selecciona Europe en Region → la celda muestra Europe

Si se seleccionan Germany, Latvia, Lithuania en Country → la celda muestra Germany | Latvia | Lithuania.

Este ejemplo utiliza una envoltura IF para manejar el caso de "No selection", pero puede adaptar la lógica: 

  • Sustituya las cadenas de texto por sus propias palabras ("All Regions" → "All Values"). 
  • Concatene varios campos en una línea (por ejemplo, Region + Year). 
  • Aplique un formato condicional para resaltar cuando los filtros son demasiado estrechos o demasiado amplios. 

App & System Meta (Live)

Es posible mostrar metadatos de la aplicación directamente en la hoja de cálculo utilizando funciones del sistema de Qlik. Esto garantiza que cada informe comunique claramente de qué aplicación procede y cuándo se actualizaron los datos por última vez. 

1. Insertar fórmulas de metadatos 

Nombre del documento: 

=QLIK.EXPRESSION("=DocumentName()") 

Marca de tiempo de recarga: 

=QLIK.EXPRESSION("=ReloadTime()") 

11.png

Formato

La Spreadsheets Extension ofrece un conjunto completo de herramientas de formato disponibles en el Ribbon Panel, organizadas por secciones. A continuación se presentan las herramientas más utilizadas de la pestaña Home, que le ayudarán a dar estilo y estructura rápidamente al contenido de su hoja de cálculo. 

Home

  • Fuentes : tamaño de fuente, color, negrita, cursiva, subrayado, relleno de fondo, bordes 
    12.png
  • Alineación de texto : alineación vertical y horizontal, orientación, sangría, ajuste de línea, combinar y centrar 
    12.png
  • Formatos de número : moneda, porcentaje, formatos personalizados 
    13.png
  • Estilo de celda : formato condicional, formato de tabla, estilos de celda, editores de celda 
    14.png
  • Celdas : insertar, eliminar, formato 
    15.png
  • Edición : insertar función, rellenar, borrar, ordenar y filtrar, buscar 
    16.png

 

 

Desplazamiento

La Spreadsheets Extension implementa el desplazamiento vertical para permitir una interacción fluida con grandes conjuntos de datos, especialmente cuando se utilizan Data Sections conectadas a Qlik. Este comportamiento es automático y depende del tipo de hoja y de cómo se conectan los datos. 

En esta sección se describe cómo afecta el desplazamiento a la carga y representación de los datos, y se detallan aspectos importantes para casos de uso avanzados. 

General de desplazamiento

  • A medida que el usuario se desplaza verticalmente y se acerca a la parte inferior del área visible, el sistema comprueba si deben añadirse más filas o cargarse más datos. 
  • El desplazamiento horizontal solo se admite para la navegación y no activa la carga de datos ni la ampliación del rango. 

Hojas de datos sincronizadas (Synced Data Sheets)

Al utilizar Create Synced Sheet para la Data Section , la hoja de cálculo gestionará automáticamente los grandes conjuntos de datos cargando más filas a medida que se desplace. 

A medida que se desplace por la hoja, si hay más datos de Qlik disponibles, aparecerán sin problemas debajo de las filas visibles — sin necesidad de activar o recargar nada manualmente. Esto hace que trabajar con tablas largas sea fluido y sin interrupciones. 

Si no quedan más datos por cargar, la hoja le permitirá seguir desplazándose, pero las nuevas filas aparecerán vacías. 

Este comportamiento garantiza: 

  • Que nunca se detenga bruscamente al desplazarse. 
  • Que los nuevos datos aparezcan solo cuando sea necesario. 
  • Que el diseño se mantenga coherente, incluso al llegar al final de los datos. 

Puede controlar cuántos datos se cargan inicialmente ajustando la configuración Rows Count en los ajustes de la hoja. 

En otras hojas

Las hojas que no están vinculadas a Data Sections a través de Create Synced Sheet no activan ninguna adición automática de filas ni carga de datos durante el desplazamiento. 

Desplazamiento del rango (Range Offset) y carga de datos

El sistema respeta el desplazamiento del rango de la primera columna de una Data Section al calcular el comportamiento de carga de datos. 

  • Si el rango de la primera columna empieza en una fila inferior (por ejemplo, A100), la hoja empieza a representarse desde esa posición. 
  • Toda la lógica de desplazamiento y recuperación de datos se basa en el desplazamiento de esa primera columna. 

Limitaciones y casos particulares

  • Los rangos horizontales (por ejemplo, A1:Z1) representarán los datos correctamente para el primer conjunto de valores, pero no permitirán la carga de datos adicionales durante el desplazamiento vertical. El usuario debe gestionar el diseño y la visibilidad manualmente en tales casos. 
  • Los desplazamientos de columna mixtos (por ejemplo, A1, B5, C10) pueden dar lugar a: 
    • Alineación incoherente 
    • Huecos en los datos visualizados 
    • Datos que aparecen solo parcialmente cargados 

La recuperación de datos siempre está alineada con el desplazamiento de la primera columna, independientemente de cómo estén configuradas las demás columnas. 

Consideraciones sobre el rendimiento

Los rangos personalizados con desplazamientos grandes o recuentos de filas muy elevados pueden aumentar significativamente el volumen de datos durante la carga. 

Por ejemplo: 

  • Una Data Section con 5 columnas y un límite de filas definido por el usuario de 10.000 intentará cargar y representar 50.000 celdas. 
  • Esto puede afectar al rendimiento, especialmente en navegadores antiguos o máquinas de gama baja. 

Para mantener la capacidad de respuesta, considere: 

  • Limitar el número de filas siempre que sea posible. 
  • Evitar desplazamientos iniciales innecesariamente grandes. 

Abrir / Guardar

La funcionalidad Open / Save del menú File le permite preservar, reutilizar y compartir el contenido de su Spreadsheet. 

Puede elegir entre 2 ubicaciones de almacenamiento para guardar y cargar las configuraciones de su Spreadsheet. Cada opción puede activarse o desactivarse en el Properties Panel. Una vez activada, aparecerá la sección correspondiente en el menú File.

Opción 1: Escritorio

  • Guarda la configuración de su Spreadsheet como un archivo JSON en su ordenador. 
  • Ideal para compartir directamente con usuarios individuales o guardar copias privadas. 

Para abrir un archivo guardado: 

  1. Vaya al menú File → Open → Desktop. 
  2. Haga clic en Select File. 
  3. Elija el archivo de configuración JSON guardado anteriormente. 

Opción 2: Content Library

  • Guarda su configuración como un archivo JSON dentro de la Content Library de Qlik elegida. 
  • Similar a la opción Desktop, pero el archivo se almacena en Qlik en lugar de localmente. 
  • Ideal para mantener múltiples versiones de configuraciones de Spreadsheet accesibles para todos los usuarios con acceso a la Content Library. 

Consejo: Para cambios temporales que no necesitan guardarse, utilice la funcionalidad Autosave

Autosave

La funcionalidad Autosave le permite conservar los cambios en su Spreadsheet sin guardarlos explícitamente en una configuración estable. 

Cuando está activado, cualquier cambio que realice se registra automáticamente tras 3 segundos de inactividad. Estos cambios guardados automáticamente se almacenan localmente en su navegador y solo están disponibles para usted (no se comparten con otros usuarios). 

Existen tres opciones de almacenamiento: 

22.png

Opción 1: Window Session

  • Guarda la configuración actual en su sesión del navegador. 
  • Los cambios permanecen disponibles mientras la ventana del navegador permanezca abierta. 
  • Al cerrar el navegador se descartarán todos los cambios guardados automáticamente. 

Opción 2: Browser IndexDB

  • Guarda la configuración actual en el almacenamiento IndexedDB del navegador. 
  • Los cambios se conservan incluso después de cerrar y volver a abrir el navegador. 
  • Es la mejor opción para mantener su trabajo personal en curso a través de múltiples sesiones. 

Opción 3: Desactivado

  • Desactiva completamente el Autosave. 
  • No se conserva ningún cambio automáticamente. 

Nota: Utilice Window Session para trabajos temporales, IndexedDB para borradores personales persistentes o Desactivado si solo desea guardar manualmente. Al mismo tiempo, no se recomienda almacenar cambios importantes a largo plazo con Autosave. Considere el uso de las opciones estables de guardado para cambios a largo plazo. 

Historial de versiones

Cuando la funcionalidad Autosave está activada, la opción Version History pasa a estar disponible en el menú File.

Version History le permite acceder a las últimas versiones autoguardadas de todos los usuarios autorizados que tienen acceso a la aplicación.
En otras palabras, cuando los usuarios realizan cambios en la Spreadsheet, sus versiones autoguardadas más recientes aparecerán en la pestaña Version History, lo que facilita su revisión y restauración.

Puede navegar por cada versión guardada para inspeccionar su contenido.
Haga clic en Apply para restaurar una versión seleccionada como su estado actual de Spreadsheet.

  • Si no es el propietario de la aplicación de Qlik, la versión aplicada afectará únicamente a su última versión personal guardada de la Spreadsheet.
  • Si es el propietario de la aplicación, la aplicación de una versión actualizará la configuración predeterminada de la Spreadsheet para todos los usuarios.

Importar / Exportar

La Spreadsheets Extension proporciona sólidas herramientas para importar y exportar datos, lo que permite una interacción fluida con archivos y software externos 

Importar archivos Excel o CSV

Para importar datos, abra la pestaña FILE en el ribbon menu y seleccione Import. Puede cargar un archivo .XLSX (Excel) o .CSV. 

Cada tipo de importación incluye un conjunto de opciones configurables que controlan cómo se procesa el archivo. Dependiendo del formato seleccionado, podrá conservar el formato, las fórmulas, las celdas combinadas, los ajustes de cálculo y mucho más. Estas opciones garantizan que el contenido importado se comporte y aparezca como se espera en el entorno de Qlik. 

Una vez importada, la hoja de cálculo mantiene su estructura y estilo, lo que facilita el trabajo continuo con los datos o plantillas existentes. También puede enriquecer el archivo importado con charts de Qlik, hojas adicionales o lógica calculada. 

Exportar a Excel, CSV o PDF

Para exportar su hoja de cálculo, vaya a la pestaña FILE y elija Export. Puede guardar el libro actual en formato .XLSX, .CSV o .PDF, según sus necesidades. 

Cada formato de exportación incluye su propio panel de configuración, lo que le permite personalizar el resultado. Por ejemplo, puede elegir incluir estilos, fórmulas, elementos de diseño, encabezados o controlar cómo se manejan las celdas combinadas y vacías. Estas opciones ayudan a garantizar que su documento exportado conserve la estructura y fidelidad de contenido deseadas. 

Nota: al exportar a Excel, asegúrese de que el indicador “ Include Binding Source ” esté activado. De lo contrario, la exportación podría corromperse. 

Writeback

La Spreadsheets Extension le permite no solo trabajar con datos ya cargados en una aplicación de Qlik, sino también escribir datos nuevos o actualizados de vuelta a una base de datos externa. Esta capacidad permite casos de uso operativos e interactivos en los que los usuarios pueden editar datos directamente en una interfaz tipo hoja de cálculo y persistir esos cambios fuera de Qlik.

La funcionalidad de Writeback existe específicamente para soportar este flujo de trabajo. En esta sección de la documentación, aprenderá cómo configurar un entorno para writeback, conectar la Spreadsheets Extension a un servicio backend y utilizar eficazmente las funciones de writeback en sus aplicaciones de Qlik, desde la configuración de las conexiones de datos hasta la edición de datos y la recarga del contenido de la aplicación.

Descripción general

Cómo se estructura el Writeback

1. Data Config - definición de las conexiones de datos

En Data Config, se configura cómo se conecta la Spreadsheets Extension con su backend:

  • Defina los endpoints HTTP para leer y escribir datos (GET, POST, PUT, DELETE, BATCH).
  • Configure la autenticación (opcional).
  • Cree tablas lógicas que describan cómo se accede a una tabla de la base de datos.

Una tabla en este contexto es un objeto de configuración que representa:

  • un endpoint de backend,
  • una tabla o vista de base de datos,
  • y las reglas para interactuar con ella.

2. TableSheet - edición de datos

En TableSheet, se selecciona una de las tablas configuradas y se vincula a la hoja.

Una vez conectado:

  • Los datos se cargan desde el backend.
  • TableSheet muestra una vista de tabla que representa los datos de la base de datos.

Los usuarios pueden:

  • editar valores de celdas,
  • añadir nuevas filas,
  • eliminar filas existentes.

Todas las modificaciones se realizan directamente en la interfaz de usuario tipo hoja de cálculo.
Internamente, estas acciones se traducen en peticiones CRUD o batch enviadas al backend.

3. Guardar cambios y recargar datos

Cuando los usuarios terminan de editar los datos:

  • Los cambios se envían al backend y se persisten en la base de datos.
  • La aplicación de Qlik en sí no se actualiza automáticamente.
  • Para ver los datos actualizados en los visuales de Qlik, el usuario activa explícitamente una recarga.

Hay dos opciones de recarga disponibles:

  • Partial Reload
    Refresca los datos para la sesión de usuario actual.
  • Full Reload
    Recarga el modelo de datos completo de la aplicación (disponible solo para usuarios avanzados).

Las recargas se activan a través de la API de Qlik Engine y dependen de que el script de carga de la aplicación esté configurado correctamente para leer los datos actualizados del backend.

Backend para Writeback

Para soportar el writeback, proporcionamos un backend de referencia de muestra construido con:

  • Node.js
  • Express
  • SQLite

Repositorio de GitHub con una solución de backend de muestra: https://github.com/AnyChart/writeback-server-example 

Este backend:

  • Implementa los endpoints CRUD y batch necesarios.
  • Almacena los datos en una base de datos relacional.
  • Demuestra cómo funciona la integración del writeback de extremo a extremo.

El backend proporcionado es demostrativo:

  • Es adecuado para pruebas locales y demostraciones.
  • Está pensado como una implementación de referencia.
  • Se espera que los usuarios lo adapten o lo sustituyan por su propio backend para su uso en producción.

Qué es el Writeback (y qué no es)

El Writeback es:

  • explícito: los usuarios deciden cuándo guardar y recargar,
  • controlado: no hay recargas en segundo plano ni programadas,
  • flexible: funciona tanto con backends de demostración como personalizados.

El Writeback no es:

  • proporcionar sincronización en tiempo real,
  • proporcionar refresco automático en segundo plano,
  • un sustituto de la gobernanza de datos del backend.

Flujo típico de Writeback

  1. Configure las conexiones de backend en Data Config.
  2. Vincule una Table configurada a TableSheet.
  3. Edite los datos directamente en la TableSheet.
  4. Los cambios se envían al backend y se guardan.
  5. Active Partial o Full Reload para refrescar los datos de Qlik.

Editar → Guardar → Recargar → Ver datos actualizados en Qlik

________________________________________

Quick Start 

Esta sección muestra la forma más rápida de obtener una demostración de writeback funcional utilizando el backend de referencia proporcionado.

Esta guía se centra en el camino principal y evita temas avanzados como backends personalizados, paginación o validación compleja.

Requisitos previos

  • Qlik Sense Desktop
  • La Spreadsheets Extension ya está instalada.
  • Node.js 
  • Familiaridad básica con:
    • Scripts de carga de Qlik
    • Añadir objetos a una hoja de Qlik

Nota: El mismo flujo de trabajo se aplica a otras plataformas de Qlik.

Videotutorial

Próximamente

Paso 1: Iniciar el backend de demostración de Writeback

Proporcionamos un backend de referencia de muestra construido con Node.js + Express + SQLite.
Puede adaptarse a su entorno real.

  1. Clone el repositorio:
    git clone https://github.com/AnyChart/writeback-server-example 
    cd writeback-server
  2. Instale las dependencias:
    npm install
  3. Configure las variables de entorno
    Cree un archivo .env y establezca las siguientes variables:
    PORT = 3333
    TOKEN = testtoken123
  4. Inicie el servidor:
    npm start
  5. Verifique que el backend se está ejecutando:
      a. Abra un navegador o un cliente REST
      b. Compruebe que el endpoint GET responde

http://localhost:<PORT>/employees/get

En este punto, el backend y la base de datos de demostración se están ejecutando localmente.

Paso 2: Crear un conector REST en la aplicación de Qlik

Para que los cambios de writeback sean visibles en las visualizaciones de Qlik, la aplicación debe cargar los datos directamente desde el backend.
Esto se hace mediante un conector REST.

  • Abra el Data Load Editor.
  • Cree un nuevo conector REST.
  • Establezca la URL del endpoint GET del backend (por ejemplo, http://localhost:3333/employees/get).

Autenticación (Importante)

Si su backend requiere autenticación (como en el backend de demostración):
Añada un encabezado personalizado al conector:
Nombre: Authorization
Valor: Bearer YOUR_TOKEN


Notas:

  • El valor del token debe coincidir con el token utilizado en la Spreadsheets Extension.
  • Si su backend no requiere autenticación, este encabezado puede omitirse.
  • El manejo de la autenticación depende enteramente de la implementación de su backend.

Guarde el conector.

En este ejemplo, el conector se llama Writeback_DEMO

Paso 3: Añadir un script de carga para leer datos del backend

Tras crear el conector REST, añada un script de carga que lea datos de él.

Ejemplo de script de carga:

LIB CONNECT TO 'Writeback_DEMO';

RestConnectorMasterTable:
SQL SELECT
 "id",
 "Region",
 "Director",
 "Salary",
 "HiredDate",
 "FiredDate"
FROM JSON (wrap on) "root";

[employees]:
REPLACE LOAD
 [id],
 [Region],
 [Director],
 [Salary],
 [HiredDate],
 [FiredDate]
RESIDENT RestConnectorMasterTable;

DROP TABLE RestConnectorMasterTable;

Las recargas (parciales o totales) vuelven a ejecutar este script para reflejar los cambios de writeback.

Paso 4: Añadir la Spreadsheets Extension a la aplicación

  1. Abra su aplicación de Qlik.
  2. Añada el objeto Spreadsheet a una hoja.

En este punto, la hoja de cálculo es visible pero aún no está conectada a ninguna fuente de datos.

Paso 5: Configurar una fuente de datos (Data Config)

  1. Abra Data Config dentro de la Spreadsheets Extension.
  2. Cree una nueva tabla.
  3. Introduzca las credenciales de autenticación del backend (token).
  4. Configure los endpoints del backend (ejemplo: tabla de empleados):
    1. GET: http://localhost:3333/employees/get
    2. POST: http://localhost:3333/employees/post
    3. PUT: http://localhost:3333/employees/put
    4. DELETE: http://localhost:3333/employees/delete
    5. BATCH: http://localhost:3333/employees/batch
  5. Guarde la configuración.

Este paso define cómo se comunica la Spreadsheets Extension con el backend.

Paso 6: Vincular la tabla a TableSheet

  1. Cambie a TableSheet.
  2. Seleccione la tabla configurada de la lista.
  3. Vincúlela a la hoja.

Una vez vinculada:

  1. Los datos se cargan desde el backend.
  2. Se muestra una vista de tabla que representa la base de datos.
  3. Las celdas pasan a ser editables.

Paso 7: Probar el Writeback

  1. Edite un valor existente en TableSheet o añada una nueva fila.
  2. Guarde/aplique los cambios.
  3. Active una recarga:
    1. Partial Reload (recomendado)
    2. Full Reload (también disponible)

La Extension hará lo siguiente:

  • enviará los cambios al backend,
  • los persistirá en la base de datos,
  • recargará la aplicación a través de la API de Qlik Engine.

Paso 8: Verificar el resultado

Una vez finalizada la recarga:

  • Los datos actualizados deberían aparecer:
    • en otras visualizaciones de Qlik (por ejemplo, tablas, KPIs),
    • no solo dentro de la Spreadsheet.
  • Esto confirma que:
    • el writeback funcionó,
    • los datos se guardaron,
    • la recarga tuvo éxito,
    • el script de carga está leyendo los datos actualizados.

Datos editados en TableSheet → guardados en la base de datos → visibles en los visuales de Qlik.

________________________________________

Arquitectura

Esta sección describe la arquitectura de la funcionalidad Writeback en la Spreadsheets Extension y cómo sus componentes principales interactúan entre sí.

Flujo de alto nivel

A alto nivel, la arquitectura de writeback sigue un modelo de interacción explícito dirigido por el cliente:

  • El usuario edita los datos en la Spreadsheets Extension.
  • La Extension envía peticiones de writeback a un Backend de Writeback.
  • El backend persiste los cambios en una base de datos.
  • El usuario activa explícitamente una recarga desde la Extension.
  • La aplicación de Qlik recarga los datos y actualiza las visualizaciones.

No hay sincronización en segundo plano ni recarga automática después del writeback.

Todos los cambios de estado son iniciados por acciones del usuario.

Componentes principales

Data Config (Extension)

Data Config es la capa de configuración dentro de la Extension.

Responsabilidades:

  • Definir Tablas y sus endpoints de backend para:
    • GET
    • POST
    • PUT
    • DELETE
    • BATCH
    • COLUMNS
  • Configurar la autenticación.

Una tabla es un objeto de configuración, no los datos en sí.

Describe cómo se comunica la Extension con el backend.

TableSheet (Extension)

TableSheet es la capa de interacción de datos.

Responsabilidades:

  • Vincular una tabla configurada a una vista dedicada (TableSheet).
  • Mostrar los datos del backend en formato tabular.
  • Permitir a los usuarios:
    • editar valores de celdas,
    • añadir filas,
    • eliminar filas,
    • realizar recargas
  • Recopilar cambios y prepararlos para el writeback.

TableSheet representa el estado actual de los datos cargados desde el backend, no una copia cacheada o autoritativa.

Backend de Writeback

El Backend de Writeback es un servicio HTTP responsable de la persistencia de los datos.

Responsabilidades:

  • Aceptar peticiones CRUD y batch de la Extension.
  • Procesar los datos entrantes (según lo definido por la implementación del backend).
  • Persistir los datos en una base de datos.
  • Devolver las filas actualizadas o los resultados de la operación.

Límites importantes:

  • El backend es agnóstico a Qlik.
  • El backend no activa recargas.
  • El backend no gestiona sesiones de usuario dentro de Qlik.

El backend Node.js + Express + SQLite proporcionado sirve como implementación de referencia, pensada para ser adaptada o sustituida en entornos de producción.

Base de datos

La base de datos almacena el estado autoritativo de los datos.

Características clave:

  • El backend es la única fuente de verdad.
  • Los cambios se aplican inmediatamente tras las peticiones de writeback.
  • No hay una capa de staging intermedia.

El comportamiento multiusuario sigue un modelo de "el último en escribir gana":

  • Las actualizaciones concurrentes se resuelven por orden de ejecución.
  • No se aplican bloqueos ni lógica de fusión.

Este enfoque evita conflictos por definición y mantiene el sistema predecible.

Aplicación y motor de Qlik

La aplicación de Qlik carga los datos del backend a través de su script de carga.

Responsabilidades:

  • Recuperar datos del backend mediante endpoints GET.
  • Construir el modelo de datos de la aplicación.
  • Actualizar las visualizaciones tras la recarga.

Las recargas se activan desde la Spreadsheets Extension utilizando la API de Qlik Engine.

Hay:

  • no hay tareas de recarga de QMC,
  • no hay recargas programadas,
  • no hay recargas iniciadas por el servidor.

Autenticación

La autenticación entre la Spreadsheets Extension y el backend de writeback admite tres modos:

  • None — las peticiones se envían sin ningún dato de autenticación.
  • Basic — las peticiones incluyen un nombre de usuario y una contraseña.
  • Token — las peticiones incluyen un token Bearer en la cabecera Authorization.

La Extension solo adjunta los datos de autenticación seleccionados a las peticiones salientes.

La lógica exacta de autorización, las reglas de validación y el control de acceso se rigen íntegramente por el backend.

La autenticación es opcional y depende de los requisitos del backend.

Modelo de recarga en la arquitectura

La lógica de recarga es propiedad exclusiva de la Spreadsheets Extension (no del backend).

  • Las recargas son activadas explícitamente por el usuario.
  • Se admiten recargas parciales y totales.
  • Las recargas utilizan únicamente la API de Qlik Engine.

La recarga es un paso independiente del writeback y nunca es automática.

Resumen de la arquitectura

La arquitectura de writeback es intencionadamente sencilla y explícita:

  • La interfaz de usuario y la interacción residen en la Spreadsheets Extension.
  • La persistencia es gestionada por un servicio backend.
  • La recarga de datos es dirigida por el usuario y consciente de la sesión.
  • El comportamiento multiusuario es determinista mediante el modelo "el último en escribir gana".
  • Sin QMC, sin tareas de recarga, sin procesos en segundo plano.

Este diseño mantiene las responsabilidades claramente separadas y permite que la solución pase de demostraciones a entornos de producción sin reescrituras arquitectónicas.

________________________________________

Configuración del Backend

Propósito del Backend de Writeback

El backend de Writeback es un componente necesario que persiste los cambios de datos realizados en la Spreadsheets Extension.

Sus responsabilidades incluyen:

  • aceptar peticiones de writeback de la Extension,
  • escribir datos en una base de datos,
  • devolver los registros recibidos al cliente.

El backend está intencionadamente desacoplado de Qlik y no gestiona recargas, sesiones ni lógica de interfaz de usuario.

Backend de demostración (Implementación de referencia)

Proporcionamos un backend de demostración construido con:

  • Node.js
  • Express
  • SQLite

Este backend sirve como:

  • una demo lista para ejecutar para pruebas locales,
  • una implementación de referencia para construir su propio backend.

Demuestra:

  • los endpoints CRUD y batch requeridos,
  • los formatos de petición y respuesta esperados,
  • el manejo básico de la autenticación,
  • los patrones de interacción con la base de datos.

El backend de demostración no es de grado de producción y está pensado para fines de demostración y aprendizaje.

Ejecución del backend de demostración

Las instrucciones detalladas para ejecutar y configurar el backend de demostración se mantienen en el repositorio de GitHub:

Writeback Server Repository - https://github.com/AnyChart/writeback-server-example 

El README del repositorio cubre:

  • pasos de instalación,
  • variables de entorno,
  • configuración de la autenticación,
  • esquema de la base de datos,
  • endpoints disponibles,
  • peticiones de ejemplo.

Uso de su propio backend

No está obligado a utilizar el backend de demostración.

Puede utilizar cualquier implementación de backend, siempre que:

  • exponga endpoints CRUD y batch compatibles,
  • acepte y devuelva datos JSON,
  • persista los cambios de forma fiable,
  • aplique autenticación y validación según sea necesario.

La responsabilidad de:

  • la validación de los datos,
  • la seguridad,
  • el control de acceso,
  • la escalabilidad

recae sobre la implementación del backend.

Los endpoints CRUD deben cumplir los siguientes requisitos:

Operación

Tipo de petición

Datos de la petición

Datos de la respuesta

update

POST

Los datos actualizados

Los datos actualizados

read

GET

Sin datos

La matriz de registros

delete

DELETE

Los datos borrados o matriz de datos

Sin restricciones

create

POST

Los datos insertados

Los datos insertados

getColumns

GET

 

Una matriz de columnas, donde cada columna contiene las propiedades:

La propiedad 'field' es el nombre de la columna.

La propiedad 'dataType' es el tipo de datos de la columna.

La propiedad 'defaultValue' es el valor por defecto del registro en la columna.

La propiedad 'isPrimaryKey' es la columna primaria.

batch

POST

Una matriz de objetos, donde cada objeto contiene una propiedad 'type'.

Este tipo de operación puede ser 'update', 'insert', 'delete', 'addColumn', 'updateColumn' o 'removeColumn'.

La propiedad 'dataItem' es el registro actual.

La propiedad 'sourceIndex' es el índice del registro.

La propiedad opcional 'oldDataItem' es el registro original.

La propiedad opcional 'column' es la columna actual.

La propiedad opcional 'data' es el valor por defecto de la columna añadida actualmente.

La propiedad opcional 'originalColumn' es la columna original.

Por ejemplo:

[ {"type":"addColumn","column":{...}},

{"type":"updateColumn","column":{...}, "originalColumn":{...}},

{"type":"removeColumn","column":{...}},

{"type":"delete","dataItem":{...}, "sourceIndex":5},

{"type":"insert","dataItem":{...}, "sourceIndex":3},

{"type":"update","dataItem":{...}, "oldDataItem":{...}, "oldDataItem":{...}, "sourceIndex":1}]

Una matriz de objetos, donde cada objeto contiene una propiedad 'succeed' que indica el éxito o el fracaso de una operación, y una propiedad opcional 'data', que es el registro actual y solo para la operación 'insert'.

Por ejemplo:

[{"succeed":true}, {"succeed":false}, {"succeed": true},

{"succeed":true}, {"succeed":false}, {"succeed": true}]

Resumen del Backend

  • El backend es obligatorio para el writeback.
  • Se proporciona un backend de demostración para su comodidad y referencia.
  • Los despliegues en producción deben utilizar un backend personalizado.
  • Los detalles de la implementación del backend están documentados en GitHub.

________________________________________

Configuración de la Extension

Esta sección se centra en la configuración de la Spreadsheets Extension dentro de una aplicación de Qlik para que pueda comunicarse con un backend de writeback, guardar cambios de datos y activar recargas.

Descripción general de la configuración de la fuente de datos

La configuración del writeback se gestiona a través de la ventana Data Source.

En esta ventana, usted define una o más Tablas, donde cada Tabla representa una conexión lógica a los endpoints del backend.



Para acceder a ella, seleccione la sección Data en el Ribbon menu, y haga clic en el botón Data Source Config


 

Ajustes de tabla

Autenticación

Cada tabla puede configurarse con un método de autenticación.
El método seleccionado se aplica a todas las peticiones realizadas para esa tabla.

Opciones disponibles:

  1. None
    No se utiliza autenticación.
    Las peticiones se envían sin cabeceras de autorización.
  2. Basic
    Utiliza un par de nombre de usuario y contraseña.
    Las credenciales se envían mediante la autenticación básica HTTP estándar.
  3. Token
    Utiliza un token Bearer.
    El token se adjunta a las peticiones como una cabecera Authorization: Bearer <token>.

La autenticación es opcional y depende enteramente de cómo esté implementado el backend.

Nota sobre el backend de demostración:

El servidor de writeback de demostración proporcionado por AnyChart utiliza por defecto la autenticación basada en Token. Esto se hace por simplicidad y claridad en la implementación de referencia.

Nombre de la tabla

Un nombre lógico utilizado dentro de la Extension.
Este nombre se selecciona posteriormente al vincular la tabla a una TableSheet.

Configuración de endpoints

Para cada operación, especifique:

  • Método HTTP
  • URL completa del endpoint

Operaciones soportadas:

  • Read (GET)
    Carga datos en la TableSheet.
  • Create (POST)
    Inserta nuevas filas.
  • Update (PUT)
    Actualiza las filas existentes.
  • Delete (DELETE)
    Borra filas.
  • Batch (POST)
    Aplica múltiples operaciones de creación/actualización/borrado en una sola petición.
  • Get Columns (GET)
    Recupera metadatos de columnas del backend.

Notas:

  • El endpoint Read (GET) es obligatorio para visualizar los datos.
  • Las acciones de writeback solo funcionan si los endpoints correspondientes están configurados.
  • Si falta un endpoint, la acción relacionada no funcionará correctamente.

Vincular una tabla a TableSheet

Después de configurar una tabla:

  • Cambie a la vista TableSheet, seleccionando la sección Insert en el ribbon menu y haciendo clic en el botón TableSheet
  • Seleccione una de las tablas configuradas en el menú desplegable.
  • Observe la tabla vinculada en la TableSheet 

    Una vez vinculada, la TableSheet muestra los datos devueltos por el endpoint Read y permite la edición según las operaciones configuradas.

________________________________________

Uso del Writeback

Esta sección explica cómo trabajar con el writeback dentro de la aplicación de Qlik, utilizando la interfaz TableSheet.

Edición de filas existentes

Para editar datos existentes, primero habilite el modo Row Action:

  • Abra la sección Table Sheet Design en el ribbon menu.
  • Haga clic en el botón Row Action.

Una vez activado el modo Row Action:

  • Puede editar los valores de cualquier columna que no sea clave primaria.
  • Las columnas de clave primaria son de solo lectura y no pueden modificarse.

Para guardar los cambios de una fila:

  • Haga clic en el icono de la marca de verificación (✓) a la izquierda de la fila.

Esta acción envía inmediatamente una petición de Update al backend.

Para descartar los cambios:

  • Haga clic en el icono de la cruz (✕) — la fila vuelve a su estado anterior.

Añadir nuevas filas

Para añadir una fila nueva:

  • Desplácese hasta la parte inferior de la TableSheet.
  • Pueble la última fila vacía con nuevos datos (debe rellenarse al menos una celda de la fila).

Si se requieren campos adicionales, esto viene definido por el esquema del backend.

Para guardar la nueva fila:

  • Haga clic en el icono de la marca de verificación (✓) a la izquierda.
  • Esto envía una petición de Create al backend.

Si el backend permite valores faltantes o vacíos, se guardan tal cual.
Las reglas de validación dependen de cómo esté implementado el backend.

Borrar filas

Para borrar una fila:

  • Localice la fila que desea eliminar.
  • Haga clic en el icono menos (–) situado a la izquierda de la fila.

Esta acción envía una petición de Delete al backend.

Guardar cambios y acciones en bloque (Batch)

Las acciones a nivel de fila (iconos de marca de verificación / menos) aplican los cambios inmediatamente para esa fila.
Si realiza cambios en varias filas y desea aplicarlos todos juntos:

  • Abra Table Sheet Design en el ribbon menu.
  • Abra el menú desplegable Batch.
  • Haga clic en Submit.

Esto envía todos los cambios pendientes en una única petición batch.

Nota: para habilitar la funcionalidad Batch - Active la opción “Batch” en la Data Source Config.

Recarga de datos en Qlik

Después de realizar los cambios, recargue la aplicación para actualizar otras visualizaciones.

Los controles de recarga se encuentran en:
Ribbon menu → Table Sheet Design → Batch dropdown

Opciones disponibles:

  • Partial Reload
  • Full Reload

Notas:

  • Las recargas se activan siempre de forma manual.
  • La recarga parcial requiere que el script de carga de la aplicación esté estructurado de forma adecuada.
  • Cuando finaliza la recarga, todos los charts y tablas de la aplicación reflejan los datos actualizados.

Ejemplo de flujo de trabajo típico

Un flujo de trabajo común de writeback tiene este aspecto:

  • Editar valores en la TableSheet
  • Guardar filas mediante la marca de verificación
  • Activar Partial Reload
  • Ver los datos actualizados en los charts y tablas

Esto mantiene el writeback de forma explícita, predecible y fácil de controlar

Fórmula AI

La función AI Formula le permite ejecutar consultas en lenguaje natural utilizando un modelo de IA conectado (en la versión alfa solo admite la conexión con OpenAI). Esto permite que las hojas de cálculo se conviertan en herramientas interactivas e inteligentes, capaces de generar o transformar contenidos sobre la marcha mediante prompts basados en el lenguaje. 

Configuración (Property Panel)

Para utilizar fórmulas de IA, vaya a la sección AI Formula en el panel de propiedades de la Extension y configure los siguientes ajustes: 

  • AI server URL 
    El endpoint de la API de OpenAI (por ejemplo, https://api.openai.com/v1/chat/completions) 
  • AI model 
    Actualmente soporta: 
    • Gpt-3.5-turbo 
    • Gpt-4 
      (En el futuro se añadirán más modelos) 
  • Max tokens per request 
    Controla la longitud de la respuesta de la IA (por defecto: 4000) 
  • Formula evaluation mode 
    Determina cuándo se consulta a la IA: 
    • On recalculation 
    • Once 
    • On interval 
  • API Key 
    Su clave secreta de OpenAI (debe tener derechos de acceso válidos al modelo seleccionado) 

Uso de la fórmula AI() en la hoja de cálculo

Una vez configurados los ajustes anteriores, puede utilizar la siguiente fórmula directamente en las celdas de la hoja de cálculo: 

=AI("Translate this sentence to Spanish: " & A2) 

Sintaxis de la fórmula: 

AI(query_string) 

  • query_string – Un prompt de cadena que se enviará al modelo seleccionado (puede ser estático o dinámico utilizando referencias a celdas) 

El resultado se mostrará directamente en la celda donde se introduzca la fórmula. 

Conversión desde table extension

Puede convertir un gráfico de Table nativo de Qlik en la Spreadsheets Extension. 

  • Todas las Columns configuradas de la Table original se transfieren automáticamente a la Data Section por defecto de la Spreadsheet. 
  • Se crea una hoja correspondiente que contiene todas las mismas columnas que la Table original. 

Cómo convertir un gráfico de Table: 

  1. Asegúrese de tener un Table chart con datos en la hoja de su aplicación. 
  2. Entre en Edit Mode y abra el panel Assets
  3. Vaya a Custom Objects
  4. Busque la Extension Spreadsheets
  5. Arrástrela y suéltela sobre el gráfico de Table existente. 
  6. Seleccione Convert

Nota: La conversión solo funciona en un sentido. No es posible volver a convertir una Spreadsheet en un gráfico de Table estándar de Qlik. 

Consejo: Utilice esta función para migrar rápidamente las tablas existentes a Spreadsheets y desbloquear funciones avanzadas de edición e interacción. 

Atajos de teclado

La lista de atajos de teclado disponibles para su uso con la Spreadsheets Extension. 

TECLA ACCIÓN 
Ctrl+Z deshacer 
Ctrl+Y rehacer 
Ctrl + Abajo navegación al final 
Abajo navegación hacia abajo 
Fin navegación al final 
Ctrl+Derecha navegación al final 
Ctrl+Inicio ir al principio de la hoja 
Inicio navegación al inicio 
Ctrl+Izquierda navegación al inicio 2 
Ctrl+Fin ir al final de la hoja a la derecha 
Izquierda navegación hacia la izquierda 
Tab mover a la siguiente celda 
AvPág navegación página abajo 
RePág navegación página arriba 
Ctrl+RePág Navegación hoja anterior 
Ctrl+AvPág Navegación hoja siguiente 
Mayús+Tab mover a la celda anterior 
Derecha navegación hacia la derecha 
Ctrl+Arriba navegación hacia arriba 
Arriba navegación hacia arriba 
Suprimir borrar 
Retroceso borrar y editar 
Intro confirmar entrada y navegar hacia abajo 
Mayús+Intro confirmar entrada y navegar hacia arriba 
ESC cancelar entrada 
Mayús+Izquierda selección hacia la izquierda 
Mayús+Derecha selección hacia la derecha 
Mayús+Arriba selección hacia arriba 
Mayús+Abajo selección hacia abajo 
Mayús+Inicio selección al inicio 
Ctrl+Mayús+Izquierda selección al inicio 
Mayús+Fin selección al final 
Ctrl+Mayús+Derecha selección al final 
Mayús+RePág selección página arriba 
Mayús+AvPág selección página abajo 
Ctrl+Mayús+Arriba selección hacia arriba 
Ctrl+Mayús+Abajo selección hacia abajo 
Ctrl+Mayús+Inicio seleccionar primera 
Ctrl+Mayús+Fin seleccionar última 
Ctrl+C Copiar 
Ctrl+X Cortar 
Ctrl+V Pegar 
Alt+Intro Nueva línea de entrada 

Otras extensiones de AnyChart
Árbol de descomposiciónGráfico De DianaMedidor circularGráfico combinadoGráfico de anilloGantt de ProyectosGantt de RecursosLínea de tiempoCascada ClásicoCascada avanzada
Descargar extensión Spreadsheets
Descargar
Compartir esta página
LinkedInFacebookXEmail
---