Cómo crear varios archivos PDF desde Excel (Office Scripts + Power Automate)

Índice
  1. Ejemplo
  2. Guión de oficina
  3. Construyendo el flujo de automatización de energía
  4. Ejecutar el flujo: crear varios archivos PDF
  5. Conclusión

Crear varios archivos PDF basados ​​en una lista es un caso de uso común en Excel. Me preguntan sobre esto regularmente.

Hace unas semanas recibí esta pregunta sobre nuestro curso de Office Scripts :

Antes de comenzar el curso sobre Office Scripts, me preguntaba si es posible recorrer una hoja de cálculo y con cada iteración del ciclo guardar la hoja de cálculo como PDF.

Pensé que sería útil compartir cómo hacer esto. Es muy fácil con Office Scripts y Power Automate.

Si está buscando una solución VBA, puede encontrarla aquí: https://exceloffthegrid.com/excel-create-pdfs-based-on-a-list/

Tabla de contenido
  • Ejemplo
  • Guión de oficina
  • Construyendo el flujo de automatización de energía
  • Ejecutar el flujo: crear varios archivos PDF
  • Conclusión

Descargue el archivo de ejemplo: únase al programa Insiders gratuito y obtenga acceso al archivo de ejemplo utilizado para esta publicación.

Nombre de archivo: 0157 Múltiples archivos PDF: Office Scripts y Power Automate.xlsx

Tener acceso

Ejemplo

Tenemos dos archivos de Excel para nuestro ejemplo: Ejemplo de informes.xlsx y Lista de guardado de PDF.xlsx .

Guarde ambos archivos en una carpeta de OneDrive (OneDrive para empresas, no OneDrive personal).

Ejemplo de informe.xlsx

Ejemplo de informes.xlsx es la información que deseamos guardar como PDF; se incluye en la hoja de Informe .

Vista de informe completo: varios archivos PDF desde Excel

Sólo el área de impresión del informe se guardará como PDF.

Cambiar los valores en las celdas J4 (Región) y J6 (Fecha) hace que el informe se vuelva a calcular para mostrar diferentes vistas de los datos.

Parámetros de selección

  • Las regiones válidas en la celda J4 son Norte, Sur, Este, Oeste, Central o * para incluir todas las regiones.
  • Las fechas válidas en la celda J6 son cualquier mes que finalice entre el 31 de julio de 2023 y el 31 de diciembre de 2023.

Lista de guardado de PDF.xlsx

PDF Save List.xlsx incluye una tabla llamada ReportList .

Tabla ReportList con elementos para crear varios archivos PDF

La tabla contiene toda la información que necesitamos:

  • Hoja: el nombre de la hoja con los parámetros a cambiar para cada iteración del bucle.
  • Lista de celdas: la lista de celdas que debemos cambiar para cada ciclo. Estos podrían denominarse rangos si los hubiéramos configurado.
  • Lista de valores: la lista de valores que se aplicarán para cada iteración del informe. Los valores deben corresponder a las mismas posiciones en la Lista de celdas.
  • Nombre del PDF: El nombre que queremos darle al PDF guardado.

Hay algunas cosas que debe tener en cuenta aquí:

  1. Utilicé fechas de EE. UU. en formato mm/dd/aaaa porque las fechas del Reino Unido de dd/mm/aaaa causaron problemas de cálculo (no estoy seguro de por qué).
  2. El separador entre la Lista de celdas y la Lista de valores es un símbolo de barra vertical ( | ). Puedes utilizar otros separadores si lo prefieres.

Guión de oficina

Como parte de nuestro curso Office Scripts , ofrecemos nuestra biblioteca Power Automate Ready Code como beneficio adicional. Usaremos uno de los scripts de esa biblioteca para este proyecto.

En Excel, haga clic en Automatizar nuevo script . Luego copie y pegue el siguiente código en su editor de secuencias de comandos. Asegúrate de guardar el script. Lo he llamado PA – Cambiar valores de celda .

El script simplemente cambia los valores en una hoja de trabajo, según una lista de celdas y valores.

function main(workbook: ExcelScript.Workbook, wsName: string, cellList: string, valueList: string, separator: string) {  /*  Purpose:PowerAutomatescript to change cell values on a worksheet  Parameters:    -wsName-The name of the worksheet    - cellList - String value of cell references or named ranges         separated by a comma    - valueList - String value of values separated by a comma    - separator - The character(s) separating each item in the         cellList and valueList parameters  Notes:   - Multiple cells can be changed at the same time.   - The cellList must be the same length as the valueList    */  //Script variables  let ws = workbook.getWorksheet(wsName);  let cellListArr: string[] = cellList.split(separator);  let valueListArr: string[] = valueList.split(separator);  //Loop through all cells and apply new value  for (let i = 0; i  cellListArr.length; i++) {      ws.getRange(cellListArr[i]).setValue(valueListArr[i]);  }}

Código de scripts de Office: en el editor de código

Los comentarios en la parte superior del código detallan los argumentos que debemos pasar desde Power Automate.

Construyendo el flujo de automatización de energía

Ahora vayamos a Power Automate. Construya el siguiente flujo.

Hay notas adicionales debajo de la imagen. Mire el vídeo para ver el flujo creado desde el principio.

Automatizar el flujo de energía

NOTAS:

  • Activar manualmente un flujo : he utilizado un activador manual para simplificar la demostración, pero este podría ser cualquier activador relevante.
  • Listar filas presentes en una tabla :
    • Archivo: esta es la ruta completa al archivo PDF Save List.xlsx indicado anteriormente
    • Tabla: Este es el nombre de la Tabla que contiene los datos que necesitamos ( ReportList )
  • Aplicar a cada uno : No te preocupes por esta parte inicialmente; Power Automate agrega esto cuando intenta utilizar cualquier valor de la tabla ReportList.
    • Valor: se agrega automáticamente para representar cada fila de la tabla.
  • Ejecutar script: esto llama a nuestro script para cambiar los valores de celda para el libro de trabajo especificado.
    • Archivo: el archivo en el que ejecutar el script (p. ej., nuestro libro de trabajo Ejemplo de informes.xlsx )
    • Script: busque el script que guardamos anteriormente. Después de seleccionar el script, aparecen los parámetros del script.
    • wsName: seleccione la hoja en la ventana emergente Contenido dinámico
    • cellList: seleccione la lista de celdas en la ventana emergente de contenido dinámico
    • valueList: seleccione la lista de valores en la ventana emergente de contenido dinámico
    • separador: el carácter utilizado entre la lista de celdas y la lista de valores en ReportList (un símbolo | en nuestro ejemplo)
  • Convertir archivo usando la ruta : este paso crea un PDF a partir de nuestro archivo de Excel. El archivo se convierte en memoria; Necesitamos usar el paso Crear archivo para guardar el archivo.
    • Ruta del archivo : el nombre del archivo a convertir a PDF.
    • Tipo de destino : el tipo de archivo que deseamos generar.
  • Crear archivo : este paso guarda el archivo PDF.
    • Ruta de la carpeta : la carpeta para guardar el PDF.
    • Nombre de archivo : El nombre del archivo. Seleccione el nombre del PDF en la ventana emergente Contenido dinámico
    • Contenido del archivo : el contenido que se incluirá en el archivo. Seleccione el contenido del archivo en la sección Convertir archivo usando el paso de ruta de la ventana emergente Contenido dinámico

Ejecutar el flujo: crear varios archivos PDF

Ahora probemos el flujo y veamos si funciona.

Haga clic en el botón Probar en la esquina superior derecha y ejecute el flujo manualmente.

Si configuramos todo correctamente, los archivos PDF individuales se generarán en la ruta de carpeta especificada. Seleccione uno de los archivos PDF para verificar; Sabes que quieres.

Ahora cambie la fecha en la Lista de guardado de PDF y vuelva a ejecutarla. Los PDF se crean con los nuevos datos.

Bastante bonito, ¿verdad?

Conclusión

Power Automate y Office Scripts ofrecen una alternativa moderna a VBA para crear varios archivos PDF basados ​​en una lista. Con un script simple y reutilizable y una tabla de parámetros para recorrer, podemos crear rápidamente varios archivos PDF.

Artículos Relacionados:

  • Mover datos entre libros (Power Automate+Office Scripts)
  • Cómo ejecutar Power Automate desde Excel con Office Scripts o VBA
  • Utilice scripts de Office con Power Automate
  • Cómo guardar Excel como PDF con VBA (10 ejemplos)
  • Excel: cree varios archivos PDF basados ​​en una lista con VBA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Este sitio web utiliza cookies para mejorar la experiencia del usuario y garantizar un funcionamiento eficiente. Al utilizar nuestro sitio web, aceptas todas las cookies de acuerdo con nuestra política de cookies. Leer mas...