Sintaxis de plantillas
Las variables son marcadores dentro de la plantilla que se sustituyen por los datos de cada registro: una fila de una tabla de Excel, un elemento de una lista de SharePoint, una fila de Dataverse, una fila de una hoja de Google, un registro de Lark Base o el JSON que envía a través de la API de documentos. La sintaxis es la misma sea cual sea el origen.
Sintaxis básica
Sección titulada «Sintaxis básica»Use llaves con el nombre exacto del campo:
{Field_Name}Ejemplos:
{Customer_Name}→ “Acme Corp”{Invoice_Date}→ “2024-01-15”{Total_Amount}→ “1,500.00”
Qué imprime un marcador
Sección titulada «Qué imprime un marcador»Sin filtro, un marcador imprime el valor tal como lo muestra su origen. Los filtros numéricos y de fecha trabajan en cambio sobre el valor bruto subyacente: consulte Los filtros leen el valor bruto.
| Valor | Excel | Lista de SharePoint | Dataverse | Google Sheets | Lark Base | API de documentos |
|---|---|---|---|---|---|---|
| Número | Como lo muestra la celda | 1,234.5, con los decimales de la columna |
El texto con el formato de Dataverse | Como lo muestra la celda | El formato numérico del campo | Tal como se envía: 1234.5 |
| Moneda | Como lo muestra la celda | Normalmente en la moneda de la columna: $1,234.50 |
El texto con el formato de Dataverse, con el símbolo de moneda | Como lo muestra la celda | En la moneda del campo: $1,234.50 |
Tal como se envía |
| Porcentaje | Como lo muestra la celda: 12% |
12% |
Como número | Como lo muestra la celda: 12% |
Un campo de progreso, normalmente: 12% |
Tal como se envía |
| Fecha, hora | Como lo muestra la celda | 2026/02/26, o 2026/02/26 15:30 si tiene hora |
2026/02/26, o 2026/02/26 15:30 si tiene hora |
Como lo muestra la celda | El formato de fecha del campo, 2026/02/26 por defecto |
Tal como se envía |
| Persona | Texto | El nombre | Una búsqueda que imprime el nombre | Chips de personas: los nombres | El nombre | Tal como se envía |
| Enlace | =HYPERLINK(…): la dirección |
La dirección | La dirección | Una celda que es un solo enlace: la dirección | La dirección | Tal como se envía |
| Opción | Texto | La etiqueta; si hay varias, unidas con comas | La etiqueta; si hay varias, unidas con comas | La opción; si hay varias, como las muestra la celda | La opción; si hay varias, unidas con comas | Tal como se envía; una lista, unida con comas |
| Sí/no | true / false |
true / false |
Las etiquetas propias de la columna, como Yes / No |
Una casilla de verificación: true / false |
Una casilla: true / false |
true / false |
| Imágenes, archivos | Columnas de imágenes | Columnas de imagen y de miniatura, y los {Attachments} del elemento |
Columnas de imagen y de archivo, notas | Chips de archivo, enlaces a archivos de Drive, =IMAGE(…) |
Campos de adjuntos | URL de imágenes |
| Filas vinculadas | Tablas relacionadas | Columnas de búsqueda | Búsquedas y relaciones | Pestañas relacionadas | Campos de vínculo y de Lookup | Objetos y listas |
- Las fechas de SharePoint, Dataverse y Lark Base se imprimen en la zona horaria de la plantilla (Plantilla → Salida → Zona horaria, o UTC si no hay ninguna).
- Una celda o un campo vacío no imprime nada, y cuenta como vacío en
{#if}. - Las imágenes y los archivos no imprimen nada como texto. Colóquelos mediante el texto alternativo de una imagen (consulte Imágenes dinámicas), o añádalos a un PDF con
{ATTACH:…}. - A las filas vinculadas se llega con notación de punto o con un bucle: consulte Registros vinculados.
- Los enlaces y las personas tienen subpropiedades, como
{Website.text}y{Owner.email}: consulte Propiedades avanzadas de campo. - Lark Base: un campo de fórmula se imprime según el tipo de su resultado (texto, número o fecha), un campo de valoración suele imprimir
4/5y un campo Lookup imprime los valores que busca.
La página de cada origen da más detalles: el complemento de Excel, las listas de SharePoint y Dataverse, el complemento de Google Sheets y la API de documentos.
Los filtros leen el valor bruto
Sección titulada «Los filtros leen el valor bruto»Los filtros numéricos y de fecha no tienen en cuenta cómo se imprime un valor y vuelven a dar formato al valor bruto subyacente:
{Price} → "$1,234.50" (como lo muestra el origen){Price | number:2} → "1,234.50" (número bruto, reformateado){Price | currency:"EUR":"de-DE"} → "1.234,50 €" (número bruto, locale alemán)
{Date} → "2026/02/26" (como lo muestra el origen){Date | date:"DD MMM YYYY"} → "26 Feb 2026" (fecha bruta, reformateada)El valor bruto es también lo que comparan sum, avg, max, min, where y sort. Lo que es depende del origen:
| Origen | Número bruto | Fecha bruta |
|---|---|---|
| Excel | El valor de la celda, sea cual sea su formato numérico | El día y la hora que contiene la celda, en la zona horaria de la plantilla |
| Lista de SharePoint | El número almacenado | Una columna de solo fecha: ese día, en la zona horaria de la plantilla. Una de fecha y hora: el momento almacenado |
| Dataverse | El número almacenado | Una columna de solo fecha o independiente de la zona horaria: el día y la hora que contiene, en la zona horaria de la plantilla. Cualquier otra: el momento almacenado |
| Google Sheets | El valor que hay bajo el formato de la celda | El día y la hora que contiene la celda, en la zona horaria de la plantilla |
| Lark Base | El número del campo | El momento almacenado |
| API de documentos | Un número JSON, o un texto que sea un número sin formato, como "1234.5" |
Un texto como 2026-02-26 o 2026-02-26 15:30, leído en la zona horaria de la plantilla. Un texto con zona horaria, como 2026-02-26T15:30:00Z, tal como está escrito. Un número, como milisegundos desde el 1 de enero de 1970 (UTC) |
- El valor bruto de un porcentaje es una fracción:
12%es0.12, ypercentlo multiplica por 100. A través de la API de documentos, envíe0.12, no12. - Un valor sin número bruto se imprime tal cual, con una advertencia, cuando se le aplica un filtro numérico. Eso incluye un texto con separadores como
"1,234.50", un campo de valoración de Lark y un Lookup de Lark de más de un número. - En Excel y Google Sheets, una celda que solo contiene una hora o una duración es texto: se imprime como se muestra y no es una fecha.
- Un libro de Excel configurado con el sistema de fechas 1904 imprime bien sus fechas. Cuando AutomaDoc lo lee desde OneDrive o SharePoint (una plantilla vinculada al archivo), sus fechas brutas quedan cuatro años y un día antes.
Registros vinculados (campos anidados)
Sección titulada «Registros vinculados (campos anidados)»Los registros vinculados provienen de una tabla relacionada (Excel), de una búsqueda (SharePoint, Dataverse), de una pestaña relacionada (Google Sheets), de un campo de vínculo (Lark Base) o de un objeto anidado (API de documentos). Acceda a sus campos con notación de punto:
{Customer.Name}{Customer.Address}{Customer.Email}El anidamiento admite hasta 5 niveles:
{Order.Customer.Company.Address.City}Propiedades avanzadas de campo (notación de punto)
Sección titulada «Propiedades avanzadas de campo (notación de punto)»Los enlaces y las personas exponen subpropiedades mediante notación de punto, igual que algunos tipos de campo de Lark Base. Sin ella, imprimen su valor por defecto.
Enlaces
Sección titulada «Enlaces»Un enlace de una celda =HYPERLINK(…) de Excel, de una columna de hipervínculo de SharePoint, de una celda de Google Sheets que es un solo enlace o de un campo URL de Lark:
{Website} → "https://example.com" (la dirección){Website.text} → "Example Site" (el texto que se muestra){Website.link} → "https://example.com" (la dirección)En Google Sheets, una celda con un enlace dentro de otro texto imprime ese texto. En Excel, un enlace añadido con Insertar → Vínculo imprime su texto.
Personas
Sección titulada «Personas»Una sola persona, de una columna de persona de SharePoint o de un campo Created By o Modified By de Lark:
{Owner} → "John Doe" (el nombre){Owner.name} → "John Doe"{Owner.email} → "john@example.com" (SharePoint){Owner.en_name} → "John Doe" (Lark Base: el nombre en inglés){Owner.id} → el ID de la persona en el origen; en Lark Base, un ID de usuario de Lark como "ou_abc123"Cuando caben varias personas, el valor es una lista aunque contenga una sola, así que {Assignee.name} no devuelve nada: un campo User de Lark, una celda de Google Sheets con chips de personas o una columna de persona de SharePoint que admite varias personas. Use un índice para una persona concreta, o un bucle para todas:
{Assignee} → "John Doe, Jane Roe" (todos los nombres){Assignee[0].name} → "John Doe" (primera persona){Assignee[0].email} → "john@example.com" (SharePoint, Google Sheets)
{#Assignee} {name}{/Assignee}En Dataverse, las personas (un propietario, un “creado por”) son búsquedas: {Owner} imprime el nombre, y {Owner.Field} lee una columna de la fila de esa persona, como con cualquier registro vinculado.
Campos de ubicación (Lark Base)
Sección titulada «Campos de ubicación (Lark Base)»{Office} → "Headquarters, 123 Main St, City, Country"{Office.name} → "Headquarters"{Office.full_address} → "123 Main St, City, Country"{Office.address} → "123 Main St"Campos de grupo (Lark Base)
Sección titulada «Campos de grupo (Lark Base)»Un campo de grupo es una lista, así que use un índice o un bucle: {Team.name} no devuelve nada.
{Team} → "Engineering, Design" (nombres separados por comas){Team[0].name} → "Engineering" (primer grupo){Team[0].id} → primer ID de grupoPara todos los grupos, use bucles:
{#Team} {name} (ID: {id}){/Team}Varias opciones
Sección titulada «Varias opciones»Un campo de selección múltiple de Lark, una columna de opción o de metadatos administrados de SharePoint con varios valores, una columna de opciones de selección múltiple de Dataverse o un desplegable de selección múltiple de Google Sheets se pueden recorrer con un bucle o unir con un separador propio:
{Tags} → "Red, Blue, Green" (por defecto, separado por comas){Tags | join:" / "} → "Red / Blue / Green"{#Tags} - {.}{/Tags}A través de la API de documentos, una lista de valores simples llega ya unida con comas, así que {Tags} imprime Red, Blue, Green y no se puede recorrer. Para recorrerla, envíe una lista de objetos.
Bucles (campos multi-enlace)
Sección titulada «Bucles (campos multi-enlace)»Para campos que enlazan varios registros, use la sintaxis de bucle para repetir contenido por cada elemento:
{#Line_Items} Product: {Product_Name} Quantity: {Quantity} Price: {Price}{/Line_Items}{#Field} abre el bucle y {/Field} lo cierra. Dentro del bucle, use los nombres de campo sin el prefijo del padre.
Etiqueta de cierre abreviada
Sección titulada «Etiqueta de cierre abreviada»Puede usar {/} en lugar de repetir el nombre del campo:
{#Line_Items} {Product_Name} - {Price}{/}Expansión de filas de tabla
Sección titulada «Expansión de filas de tabla»Si las etiquetas de bucle van dentro de una fila de tabla, la fila entera se duplica por cada elemento: perfecto para tablas de líneas de detalle.
| Product | Qty | Price |
|---|---|---|
{#Line_Items} {Product_Name} |
{Quantity} |
{Price} {/Line_Items} |
Arrays de valores simples
Sección titulada «Arrays de valores simples»Para arrays de valores simples (no objetos), use {.} para referenciar el elemento actual:
{#Tags} {.}{/Tags}Metadatos del bucle
Sección titulada «Metadatos del bucle»Dentro de cualquier bucle tiene disponibles estas variables especiales:
| Variable | Descripción | Ejemplo |
|---|---|---|
{$index} |
Índice actual (empieza en 0) | 0, 1, 2, … |
{$num} |
Número de fila (empieza en 1) | 1, 2, 3, … |
{$first} |
true en el primer elemento |
Imprime true / false |
{$last} |
true en el último elemento |
Imprime true / false |
Bucles anidados
Sección titulada «Bucles anidados»Los bucles se pueden anidar. Los internos pueden acceder a campos de los ámbitos externos:
{#Departments} Department: {Name} {#Employees} {Name} works in {Department.Name} {/Employees}{/Departments}Si un nombre de campo existe en el ámbito interno y en el externo, gana el interno.
Filtrar, ordenar y limitar filas
Sección titulada «Filtrar, ordenar y limitar filas»Añada filtros a la etiqueta de apertura de un bucle para elegir qué filas repite y en qué orden:
{#Line_Items | where:"Status == 'Approved'" | sort:"Amount":"desc" | limit:10} {Product_Name} {Amount | currency:"USD"}{/Line_Items}| Filtro | Qué hace | Ejemplo |
|---|---|---|
where |
Conserva solo las filas que cumplen una condición | where:"Status == 'Approved'" |
sort |
Ordena las filas por un campo, de menor a mayor o de más antigua a más reciente | sort:"Due_Date" |
sort |
… o de mayor a menor o de más reciente a más antigua | sort:"Amount":"desc" |
limit |
Conserva las primeras filas | limit:10 |
offset |
Omite las primeras filas | offset:10 |
unique |
Conserva la primera fila de cada valor de un campo | unique:"Customer" |
Los filtros se aplican de izquierda a derecha, en el orden en que los escribe: sort:"Amount":"desc" | limit:3 son las tres filas mayores, mientras que limit:3 | sort:"Amount":"desc" son las tres primeras filas, de mayor a menor.
Una condición where va entre las comillas dobles, con cualquier valor de texto entre comillas simples:
| Condición | Conserva las filas en las que |
|---|---|
Status == 'Approved' |
Status es exactamente Approved |
Status != 'Draft' |
Status es cualquier cosa menos Draft |
Amount > 1000 |
Amount es mayor que 1000 (también >=, <, <=) |
Paid |
Paid tiene valor, como en {#if Paid} |
!Notes |
Notes está vacío |
- Los números se comparan por su valor bruto, no por cómo se imprimen:
Amount > 1000coincide con$1,250.00. Escriba el número sin formato:1000, no1,000. - Las fechas se comparan como fechas cuando las escribe como
2026-01-31(o con hora,2026-01-31 17:30), en la zona horaria de la plantilla:where:"Due_Date >= '2026-01-01'". Cuenta el día entero:Due_Date > '2026-01-31'empieza el 1 de febrero. - Combine condiciones con
&&(y) y||(o), y agrúpelas con paréntesis:where:"Status == 'Approved' && (Amount > 1000 || Rush)". sortordena las fechas cronológicamente, los números por su valor y el texto alfabéticamente. Las celdas vacías siempre van al final.- Si hay varios filtros
where, las filas deben cumplirlos todos. Varios filtrossortseguidos ordenan por el primero y, cuando el primero es igual, por el siguiente:sort:"Category" | sort:"Amount":"desc". - Los campos de registros vinculados funcionan con notación de punto:
where:"Product.Category == 'Hardware'". - Para una lista de valores simples, como un campo de selección múltiple, use
.para el propio valor:{#Tags | where:". != 'Internal'" | sort}. - Los filtros funcionan igual en bucles de filas de tabla, bucles de párrafo, bucles anidados y listas de detalles de Lark Approval.
Totales que coinciden con una tabla filtrada
Sección titulada «Totales que coinciden con una tabla filtrada»sum, count y join admiten los mismos filtros, así que un total puede sumar exactamente las filas que muestra la tabla de encima:
{Line_Items | where:"Status == 'Approved'" | sum:"Amount" | currency:"USD"}{Line_Items | where:"Status == 'Approved'" | count} approved itemsSi un filtro de un total no se puede aplicar, el total se deja en blanco con una advertencia, en lugar de sumar todas las filas.
Bucles horizontales (columnas)
Sección titulada «Bucles horizontales (columnas)»Añada horizontal a un bucle dentro de una tabla para repetir sus celdas a lo ancho, una columna por elemento, en lugar de repetir la fila hacia abajo:
| Etiqueta | Se repite a lo ancho |
|---|---|
| Name | {#Staff | horizontal} {Name} |
| Role | {Role} {/Staff} |
Con tres personas, esto se convierte en una tabla con una columna para cada una. Todas las filas entre las etiquetas de apertura y de cierre se repiten juntas, de modo que el nombre y el cargo de cada persona quedan en la misma columna.
- Las columnas nuevas se reparten a partes iguales el ancho de la celda de la plantilla y conservan sus bordes y su sombreado.
- Se combina con los demás filtros:
{#Staff | where:"Active" | sort:"Name" | horizontal}. - Hasta 20 columnas. Los elementos que superen ese número se omiten, con una advertencia.
- Si la lista está vacía, la celda se deja en blanco en lugar de eliminarse.
- Un bucle horizontal puede ir dentro de un bucle de filas: cada fila tiene entonces tantas columnas como elementos tenga su propia lista.
- Fuera de una tabla,
horizontalse ignora con una advertencia y el bucle se repite de la forma habitual.
Contenido condicional
Sección titulada «Contenido condicional»Muestre u oculte contenido según el valor de un campo.
Comprobación de valor
Sección titulada «Comprobación de valor»Muestre el contenido solo si el campo tiene valor:
{#if Discount} Discount applied: {Discount}{/if}Comprobación de vacío (negación)
Sección titulada «Comprobación de vacío (negación)»Muestre el contenido solo si el campo está vacío:
{#if !Notes} No additional notes.{/if}Comparación de igualdad
Sección titulada «Comparación de igualdad»{#if Status == "Approved"} This invoice has been approved.{/if}Comparación de desigualdad
Sección titulada «Comparación de desigualdad»{#if Status != "Draft"} This document has been submitted.{/if}Comparación de números y fechas
Sección titulada «Comparación de números y fechas»>, >=, < y <= comparan los números por su valor y las fechas como fechas (escritas 2026-01-31, en la zona horaria de la plantilla):
{#if Amount > 1000} Requires a second approval.{/if}
{#if Due_Date < "2026-01-01"} Overdue.{/if}En {#if}, == y != comparan el texto tal como se imprime: {#if Qty == "2"} no coincide con una cantidad que se muestra como 2.00. En un filtro where o en una sección {#Qty == 2}…{/}, también coinciden con el mismo número o el mismo día.
Filtros
Sección titulada «Filtros»Los filtros transforman cómo se muestra un valor, usando la sintaxis de barra vertical (|):
{Field | filterName}{Field | filterName:"arg1":"arg2"}Los filtros se aplican después de obtener el valor y antes de insertarlo en el documento. Sin filtro, el valor se imprime tal como lo muestra su origen (consulte Qué imprime un marcador).
Filtros de texto
Sección titulada «Filtros de texto»| Filtro | Descripción | Ejemplo | Salida |
|---|---|---|---|
upper |
Mayúsculas | {Name | upper} |
ACME CORP |
lower |
Minúsculas | {Name | lower} |
acme corp |
capitalize |
Inicial de cada palabra en mayúscula | {Name | capitalize} |
Acme Corp |
trim |
Elimina espacios al principio y al final | {Name | trim} |
Acme Corp |
truncate |
Recorta a una longitud (por defecto 50) | {Description | truncate:16} |
Lorem ipsum dolo... |
pad |
Rellena con un carácter (por defecto 0) |
{$num | pad:3} |
001 |
Filtros numéricos
Sección titulada «Filtros numéricos»number, currency y percent aceptan un locale opcional para dar formato según la región:
| Filtro | Argumentos | Ejemplo | Salida |
|---|---|---|---|
number |
decimales, locale | {Price | number:2} |
1,234.50 |
number |
decimales, locale | {Price | number:2:"de-DE"} |
1.234,50 |
currency |
código de moneda, locale | {Price | currency:"USD"} |
$1,234.50 |
currency |
código de moneda, locale | {Price | currency:"EUR":"de-DE"} |
1.234,50 € |
currency |
código de moneda, locale | {Price | currency:"JPY":"ja-JP"} |
¥1,235 |
currency |
código de moneda, locale, decimales | {Price | currency:"IDR":"id-ID":2} |
Rp 1.234,50 |
percent |
decimales, locale | {Rate | percent:1} |
45.6% |
percent |
decimales, locale | {Rate | percent:1:"de-DE"} |
45,6 % |
toFixed |
decimales | {Price | toFixed:2} |
1234.50 (sin separador de miles) |
chineseUppercase |
Ninguno | {Amount | chineseUppercase} |
捌万捌仟捌佰捌拾捌 |
chineseLowercase |
Ninguno | {Amount | chineseLowercase} |
八八八八八 |
chineseFinancial |
Ninguno | {Amount | chineseFinancial} |
捌万捌仟捌佰捌拾捌元整 |
Filtro de fecha
Sección titulada «Filtro de fecha»Dé formato a las fechas con patrones propios, cuando el formato que tiene una fecha en sus datos no es el que necesita.
Sintaxis: {Field | date:"format":"timezone":"locale"}
Todos los argumentos son opcionales. La zona horaria por defecto es la de la plantilla (Plantilla → Salida → Zona horaria), o UTC si no hay ninguna; el locale por defecto es en-US. Una fecha enviada como texto sin zona horaria, como 2026-01-31 desde la API de documentos o un formulario de Lark Approval, se imprime como ese día sea cual sea la zona horaria.
| Filtro | Argumentos | Ejemplo | Salida |
|---|---|---|---|
date |
formato, zona horaria, locale | {Date | date:"DD MMM YYYY"} |
26 Feb 2026 |
date |
formato, zona horaria, locale | {Date | date:"dddd, DD MMMM YYYY"} |
Thursday, 26 February 2026 |
date |
formato, zona horaria, locale | {Date | date:"DD MMMM YYYY":"UTC":"fr-FR"} |
26 février 2026 |
date |
formato, zona horaria, locale | {Date | date:"dddd, DD MMMM YYYY":"UTC":"de-DE"} |
Donnerstag, 26 Februar 2026 |
Tokens de fecha admitidos:
| Token | Salida | Ejemplo |
|---|---|---|
YYYY |
Año de 4 dígitos | 2026 |
MMMM |
Nombre completo del mes (según locale) | February, février, Februar |
MMM |
Nombre corto del mes (según locale) | Feb, févr., Feb |
MM |
Mes de 2 dígitos | 02 |
dddd |
Nombre completo del día (según locale) | Thursday, Donnerstag, 木曜日 |
ddd |
Nombre corto del día (según locale) | Thu, Do, 木 |
DD |
Día de 2 dígitos | 26 |
HH |
Hora en formato 24 h | 15 |
mm |
Minutos | 30 |
ss |
Segundos | 00 |
Ejemplos:
{Invoice_Date | date:"DD MMM YYYY"} → 26 Feb 2026{Invoice_Date | date:"YYYY-MM-DD"} → 2026-02-26{Invoice_Date | date:"MM/DD/YYYY"} → 02/26/2026{Invoice_Date | date:"DD/MM/YYYY":"Asia/Tokyo"} → 26/02/2026 (zona horaria de Tokio){Invoice_Date | date:"dddd, DD MMMM YYYY":"UTC":"ja-JP"} → 木曜日, 26 2月 2026{Invoice_Date | date:"DD MMMM YYYY":"UTC":"id-ID"} → 26 Februari 2026Otros filtros
Sección titulada «Otros filtros»| Filtro | Descripción | Ejemplo | Salida |
|---|---|---|---|
join |
Une valores de un array (por defecto , ) |
{Tags | join:" / "} |
Red / Blue / Green |
join |
Une un campo de cada fila, omitiendo los vacíos | {Items | join:", ":"Name"} |
Widget, Gadget |
sum |
Suma un campo en todas las filas de un bucle | {Items | sum:"Price"} |
1234.5 |
sum |
El total, formateado por el filtro siguiente | {Items | sum:"Price" | currency:"USD"} |
$1,234.50 |
count |
Número de filas de un bucle | {Items | count} |
12 |
avg |
Media de un campo en las filas (sin contar las celdas vacías) | {Items | avg:"Price"} |
411.5 |
max / min |
Valor mayor / menor de un campo en las filas | {Items | max:"Price"} |
$980.00 |
default |
Valor alternativo si está vacío | {Phone | default:"N/A"} |
N/A |
Encadenar filtros
Sección titulada «Encadenar filtros»Los filtros se encadenan de izquierda a derecha con varias barras verticales:
{Name | trim | upper} → " hello " pasa a "HELLO"{$num | pad:3} → 1 pasa a "001"{Phone | default:"N/A" | upper} → null pasa a "N/A"Filtros dentro de bucles
Sección titulada «Filtros dentro de bucles»Los filtros también funcionan con las variables de bucle y la referencia al elemento actual:
{#Items} #{$num | pad:3} - {Name | upper}{/Items}
{#Tags}{. | capitalize}, {/Tags}Imágenes dinámicas
Sección titulada «Imágenes dinámicas»Sustituya una imagen de marcador por una imagen de sus datos: una columna de imágenes de una tabla de Excel o de una lista de SharePoint, una columna de imagen de Dataverse, una celda con un chip de archivo o =IMAGE(…) en Google Sheets, un campo de adjuntos de Lark o una URL de imagen enviada a la API de documentos. La tabla de arriba muestra lo que ofrece cada origen.
- Inserte cualquier imagen en su plantilla de Word (será el marcador).
- Haga clic derecho sobre la imagen → Editar texto alternativo.
- En la descripción del texto alternativo, escriba
{FieldName}. - Guarde la plantilla.
La imagen de marcador se sustituirá por la imagen de ese campo, conservando el tamaño del marcador.
Varias imágenes
Sección titulada «Varias imágenes»Para campos con varios adjuntos, use notación de índice:
{Photo} → Primera imagen (igual que {Photo[0]}){Photo[1]} → Segunda imagen{Photo[2]} → Tercera imagenRecorrer todas las imágenes
Sección titulada «Recorrer todas las imágenes»Para campos con un número variable de adjuntos, use un bucle con {.} como texto alternativo. Cada adjunto genera su propia copia del marcador:
{#Product_Photos} [imagen con texto alternativo: {.}]{/Product_Photos}En una tabla, cada adjunto ocupa su propia fila:
| # | Photo | Filename |
|---|---|---|
{#Product_Photos} {$num} |
[imagen con texto alt: {.}] |
{name} {/Product_Photos} |
Propiedades disponibles dentro del bucle:
| Variable | Descripción | Ejemplo |
|---|---|---|
{name} |
Nombre del archivo | photo1.jpg |
{type} |
Tipo MIME | image/jpeg |
{size} |
Tamaño en bytes | 204800 |
Imágenes dentro de bucles de registros vinculados
Sección titulada «Imágenes dentro de bucles de registros vinculados»Los marcadores de imagen también funcionan dentro de bucles. Cada iteración resuelve la imagen de ese elemento:
{#Employees} Name: {Name} Photo: [imagen con texto alternativo: {Photo}]{/Employees}Códigos QR y de barras
Sección titulada «Códigos QR y de barras»Genere códigos QR y de barras a partir de valores de campo. Se configuran igual que las imágenes dinámicas: mediante el texto alternativo de la imagen.
Código QR
Sección titulada «Código QR»{QR:FieldName}Ejemplo: {QR:Order_ID} genera un código QR con el valor de Order_ID.
Códigos de barras
Sección titulada «Códigos de barras»| Sintaxis | Tipo | Notas |
|---|---|---|
{BARCODE:FieldName} |
Code128 | Por defecto, alfanumérico |
{BARCODE128:FieldName} |
Code128 | Code128 explícito |
{BARCODE39:FieldName} |
Code39 | Solo mayúsculas y dígitos |
{BARCODEEAN13:FieldName} |
EAN-13 | Código de producto de 13 dígitos |
{BARCODEEAN8:FieldName} |
EAN-8 | EAN corto de 8 dígitos |
{BARCODEUPCA:FieldName} |
UPC-A | Retail norteamericano de 12 dígitos |
{BARCODEUPCE:FieldName} |
UPC-E | UPC comprimido |
{BARCODEITF14:FieldName} |
ITF-14 | Códigos de envío / caja |
{BARCODEDATAMATRIX:FieldName} |
DataMatrix | 2D, alta densidad |
{BARCODEPDF417:FieldName} |
PDF417 | 2D, lineal apilado |
El prefijo no distingue mayúsculas de minúsculas: {qr:Field} y {QR:Field} funcionan igual.
Encabezados y pies de página
Sección titulada «Encabezados y pies de página»Toda la sintaxis de marcadores funciona también en encabezados y pies de página, igual que en el cuerpo.
Usos habituales:
- Nombre de la empresa o logotipo en el encabezado
- Número de documento o fecha en el pie
- Etiquetas dinámicas como
Invoice for {Customer_Name}
Para añadirlos: Insertar → Encabezado/Pie de página → Editar → escriba su marcador, por ejemplo {Field_Name}.
Si viene de otra app de documentos de Lark
Sección titulada «Si viene de otra app de documentos de Lark»Las plantillas escritas para otra app de documentos de Lark funcionan aquí sin cambios: suba el archivo de Word tal como está. Esto es lo que hace su sintaxis en AutomaDoc:
| Escrito como | Qué hace aquí |
|---|---|
{#isNew} Welcome {/isNew} |
Muestra el texto cuando el campo tiene valor. Sobre una lista, es un bucle |
{#!isNew}Welcome{/isNew} |
Muestra el texto cuando el campo está vacío, sin marcar o es una lista vacía |
{#Status=="Paid"}…{/} |
Muestra el texto cuando se cumple la condición. También funcionan !=, >, >=, <, <=, && y || |
{/} |
Cierra el bucle o la sección abierta más cercana |
{$index+1} |
Número de fila, empezando en 1; igual que {$num} |
{#Items | sortBy:"Total":"desc"} |
Igual que sort |
{#Items | where:"A == 'x' && B > 5"} |
Conserva las filas que coinciden, como en Filtrar, ordenar y limitar filas |
{>Items}{Name} al principio de una fila de tabla |
Repite esa celda y las que tiene a su derecha a lo largo de la fila, una columna por elemento: un bucle horizontal |
{#image}{#$isImage}{%src}{/}{#!$isImage}{$fileName}{/}{/image} |
Imprime cada imagen de un campo de adjuntos y el nombre de cada archivo que no es una imagen |
{%src | size:100:50} / {%src | maxSize:500:500} |
Una imagen exactamente de ese tamaño, o no mayor que él, en píxeles |
{%Logo} |
La primera imagen de un campo de adjuntos, a su propio tamaño y como máximo el ancho de la página |
{Name | uppercase} / {Name | lowercase} |
Igual que upper / lower |
{Price | toFixed:"2"} |
El número con dos decimales, sin separador de miles |
{Price | currency:'USD'} |
Los argumentos entre comillas simples funcionan igual que entre comillas dobles |
{Date | customDate:'YYYY-MM-DD HH:mm:ss'} |
Los mismos tokens que date, en la zona horaria de la plantilla |
{Date | date:'full'} |
2024-7-13 Saturday 00:00:00 |
chineseUppercase, chineseLowercase, chineseFinancial |
Números en chino; consulte Filtros numéricos |
Referencia rápida
Sección titulada «Referencia rápida»| Sintaxis | Descripción |
|---|---|
{Field} |
Variable simple |
{Field.Nested} |
Campo de registro vinculado (notación de punto) |
{Link.text} / {Link.link} |
Subpropiedades de un enlace |
{Owner.name} / .email / .id |
Subpropiedades de una persona (.en_name en Lark Base) |
{Assignee[0].name} |
Varias personas: es una lista, así que use un índice o un bucle |
{Location.name} / {Location.full_address} |
Subpropiedades de ubicación de Lark Base |
{Team[0].name} / {Team[0].id} |
Campo de grupo de Lark Base: es una lista, así que use un índice o un bucle |
{#Field}...{/Field} |
Bucle sobre campo multivalor |
{#Field | where:"Status == 'Paid'"} |
Bucle solo sobre las filas que cumplen la condición |
{#Field | sort:"Amount":"desc"} |
Bucle ordenado, de mayor a menor |
{#Field | limit:5} / {#Field | offset:5} |
Primeras 5 filas / todas menos las 5 primeras |
{#Field | horizontal} |
Repetir celdas de tabla a lo ancho, una columna por fila |
{Field | where:"Paid" | sum:"Amount"} |
Total de las filas que cumplen la condición |
{Field | count} |
Número de filas |
{Field | avg:"Amount"} / max / min |
Media, mayor y menor de las filas |
{#Field == "v"}...{/} |
Sección que se muestra cuando se cumple la condición |
{#!Field}...{/Field} |
Sección que se muestra cuando el campo está vacío |
{#if Field > 100}...{/if} |
Condición (orden de números o fechas) |
{/} |
Cierre abreviado (cierra el bucle abierto más cercano) |
{.} |
Elemento actual del bucle (arrays simples) |
{$index} |
Índice del bucle (desde 0) |
{$num} |
Número de fila (desde 1) |
{$first} / {$last} |
Booleano de primer/último elemento |
{#if Field}...{/if} |
Condición (con valor) |
{#if !Field}...{/if} |
Condición (vacío) |
{#if Field == "val"}...{/if} |
Condición (igualdad) |
{#if Field != "val"}...{/if} |
Condición (desigualdad) |
{Field | upper} |
Filtro: mayúsculas |
{Field | lower} |
Filtro: minúsculas |
{Field | capitalize} |
Filtro: iniciales en mayúscula |
{Field | trim} |
Filtro: quitar espacios |
{Field | truncate:30} |
Filtro: recortar con puntos suspensivos |
{Field | pad:3} |
Filtro: rellenar con ceros |
{Field | number:2} |
Filtro: número con decimales |
{Field | number:2:"de-DE"} |
Filtro: número según locale |
{Field | currency:"USD"} |
Filtro: formato de moneda |
{Field | currency:"EUR":"de-DE"} |
Filtro: moneda según locale |
{Field | percent:1} |
Filtro: porcentaje |
{Field | date:"DD MMM YYYY"} |
Filtro: formato de fecha propio |
{Field | date:"dddd, MMMM DD":"UTC":"fr-FR"} |
Filtro: fecha según locale |
{Field | join:" / "} |
Filtro: unir array con separador |
{Field | default:"N/A"} |
Filtro: valor alternativo |
{Field | trim | upper} |
Filtros encadenados (izquierda a derecha) |
{Photo} / {Photo[1]} |
Imagen (vía texto alternativo) |
{QR:Field} |
Código QR (vía texto alternativo) |
{BARCODE:Field} |
Código de barras (vía texto alternativo) |