Cómo generar anexos con archivos Office en Power Apps / Power Platform
Este tutorial muestra cómo generar archivos Office (Word y Excel) a partir de datos de una Canvas App y adjuntarlos a un elemento en SharePoint usando Power Apps y Power Automate. Es útil para crear informes o etiquetas personalizadas automáticamente sin salir de la Power Platform.
Requisitos previos
- Cuenta con licencia de Power Apps / Power Automate y acceso a SharePoint Online
- Un sitio de SharePoint y una lista preparada para recibir adjuntos
- Conocimientos básicos de Canvas Apps y de crear Flows en Power Automate
Paso 1: Preparar la plantilla del archivo Office
Usaremos una plantilla Word (docx) con marcadores de contenido simples (Quick Parts o texto entre llaves) que serán sustituidos por el Flow. Para Excel, prepare una hoja con un rango nombrado que el Flow pueda rellenar vía Office Scripts o rellene un archivo CSV si prefiere simplicidad.
Ejemplo sencillo para Word: cree un archivo Word con texto como {{Nome}} y {{Data}} y guárdelo en la biblioteca de plantillas en una biblioteca SharePoint llamada Templates.
Paso 2: Crear la Canvas App que recoge datos
En Power Apps cree una Canvas App (tablet/phone) que recoja los campos que quiere incluir en el archivo. Añada un botón para «Generar y Adjuntar» que invoque el Flow.
// Exemplo de OnSelect no botão
// assume TextInputNome e DatePickerData no ecrã
Set(varNome, TextInputNome.Text);
Set(varData, Text(DatePickerData.SelectedDate, "yyyy-MM-dd"));
'GerarFicheiroFlow'.Run(varNome, varData, ThisItem.ID)
Paso 3: Crear el Power Automate Flow desencadenado por Power Apps
Cree un Flow del tipo "Instant cloud flow" desencadenado por Power Apps. Recibirá parámetros (por ejemplo Nome, Data, ItemID) y creará el archivo rellenado a partir de la plantilla, luego lo adjuntará a la lista de SharePoint.
Pasos en el Flow:
- Desencadenador: Power Apps (V2) — añadir parámetros de entrada (Nome, Data, ItemID).
- Obtener archivo de plantilla: SharePoint > Get file content (path) — apuntar a /Templates/template.docx.
- Reemplazar texto en el documento: existen dos opciones:
- Usar conector Word Online (Business) > Populate a Microsoft Word template — si la plantilla usa Content Controls.
- Usar la acción Compose y reemplazar cadenas en el archivo base64 (más avanzado) — no recomendado para principiantes.
- Crear el archivo rellenado: SharePoint > Create file — en la biblioteca deseada (por ejemplo Documentos), use la salida del paso anterior como Content.
- Obtener el archivo creado: Get file properties / Get file content para recuperar el contenido si es necesario.
- Adjuntar a la lista SharePoint: SharePoint > Add attachment — sitio + list name + Id (ItemID recibido de Power Apps) + FileName y File Content (usando la salida del archivo creado).
- Responder a Power Apps (opcional): Response to Power Apps con éxito/URL del archivo para retroalimentación en la App.
// Exemplos de expressões úteis no Flow
// Para transformar texto em nome de ficheiro
concat('Relatorio_', replace(triggerBody()['Nome'],' ','_'), '_', utcNow(), '.docx')
// Se usar Get file content, o conteúdo vai diretamente para Create file
body('Get_file_content')
Paso 4: Configurar la acción Populate a Microsoft Word template
Si opta por usar Word Online (Business) > Populate a Microsoft Word template, abra su plantilla en Word y transforme los puntos de sustitución en Content Controls (Developer > Controls). Tras cargar la plantilla en la acción, el conector expone esos campos para rellenar con los valores recibidos de Power Apps.
// No Flow, ligar parâmetros Power Apps aos campos do template
Nome: triggerBody()['text_Nome']
Data: triggerBody()['text_Data']
Paso 5: Vincular el Flow a Power Apps y gestionar respuestas
En la acción final del Flow, use la acción "Respond to Power Apps" para devolver el resultado (por ejemplo URL del archivo o un estado). En la Canvas App, capture el retorno del Flow y muestre una confirmación al usuario.
// No Power Apps, tratar resposta (exemplo simplificado)
Set(resp, 'GerarFicheiroFlow'.Run(varNome, varData, ThisItem.ID));
If(resp.Status = "OK", Notify("Ficheiro gerado e anexado."), Notify("Erro ao gerar ficheiro", NotificationType.Error))
Verificar el resultado
Para confirmar que todo funciona: a) en Power Apps introduzca datos y haga clic en "Generar y Adjuntar"; b) verifique la lista SharePoint en el elemento correspondiente si el adjunto está presente; c) abra el archivo generado para validar los valores sustituidos. Si no aparece, consulte el historial del Flow para errores (inputs, permisos o rutas de archivo).
Conclusión
Con este proceso puede generar archivos Word/Excel personalizados y adjuntarlos automáticamente a elementos en SharePoint directamente desde una Canvas App, simplificando informes y comunicaciones. Próximos pasos: añadir control de versiones, generar múltiples adjuntos o usar Office Scripts para manipulación avanzada de Excel. Consejo: si encuentra errores, verifique permisos de SharePoint y que la plantilla use Content Controls compatibles.