Share via


Ejecutar un script en todos los archivos de Excel de una carpeta

Este proyecto realiza un conjunto de tareas de automatización en todos los archivos situados en una carpeta en OneDrive para la Empresa. También se podría usar en una carpeta de SharePoint. Realiza cálculos en los archivos de Excel, agrega formato e inserta un comentario que @mentions un compañero.

Archivos de Excel de ejemplo

Descargue highlight-alert-excel-files.zip de todos los libros que necesitará para este ejemplo. Extraiga esos archivos en una carpeta denominada Sales. Agregue el siguiente script a la colección de scripts para probar el ejemplo usted mismo.

Código de ejemplo: Agregar formato e insertar comentario

Este es el script que se ejecuta en cada libro individual. En Excel, use AutomateNew Script (Automatizar >nuevo script) para pegar el código y guardar el script. Guárdelo como script de revisión y pruebe el ejemplo usted mismo.

function main(workbook: ExcelScript.Workbook) {
  // Get the table named "Table1" in the workbook.
  const table1 = workbook.getTable("Table1");

  // If the table is empty, end the script.
  const rowCount = table1.getRowCount();
  if (rowCount === 0) {
    return;
  }

  // Force the workbook to be completely recalculated.
  workbook.getApplication().calculate(ExcelScript.CalculationType.full);

  // Get the "Amount Due" column from the table.
  const amountDueColumn = table1.getColumnByName('Amount Due');
  const amountDueValues = amountDueColumn.getRangeBetweenHeaderAndTotal().getValues();

  // Find the highest amount that's due.
  let highestValue = amountDueValues[0][0];
  let row = 0;
  for (let i = 1; i < amountDueValues.length; i++) {
    if (amountDueValues[i][0] > highestValue) {
      highestValue = amountDueValues[i][0];
      row = i;
    }
  }

  let highestAmountDue = table1.getColumn("Amount due").getRangeBetweenHeaderAndTotal().getRow(row);

  // Set the fill color to yellow for the cell with the highest value in the "Amount Due" column.
  highestAmountDue.getFormat().getFill().setColor("FFFF00");

  // Insert an @mention comment in the cell.
  workbook.addComment(highestAmountDue, {
    mentions: [{
      email: "AdeleV@M365x904181.OnMicrosoft.com",
      id: 0,
      name: "Adele Vance"
    }],
    richContent: "<at id=\"0\">Adele Vance</at> Please review this amount"
  }, ExcelScript.ContentType.mention);
}

Flujo de Power Automate: ejecute el script en cada libro de la carpeta.

Este flujo ejecuta el script en cada libro de la carpeta "Sales".

  1. Cree un flujo de nube instantáneo.

  2. Elija Desencadenar manualmente un flujo y seleccione Crear.

  3. En el generador de flujos, seleccione el + botón y Agregar una acción. Use la acción Lista de archivos en carpeta del conector de OneDrive para la Empresa. Use los siguientes valores para la acción.

    • Carpeta: /Sales (seleccionada por el selector de archivos)

    El conector de OneDrive para la Empresa completado en Power Automate.

  4. Asegúrese de que solo están seleccionados los libros. Agregue una nueva acción de control Condición . Use los siguientes valores para la condición.

    • Elija un valor: Nombre (contenido dinámico de Archivos de lista en la carpeta)
    • termina con: (en la lista desplegable)
    • Elija un valor: .xlsx

    Bloque de condición de Power Automate que aplica acciones posteriores a cada archivo.

  5. En la rama True , agregue una nueva acción. Seleccione la acción Ejecutar script del conector de Excel Online (Empresa). Use los siguientes valores para la acción.

    • Ubicación: OneDrive para la Empresa
    • Biblioteca de documentos: OneDrive
    • Archivo: Identificador (contenido dinámico de archivos de lista en la carpeta)
    • Script: Revisión del script

    Conector de Excel Online (Empresa) completado en Power Automate.

  6. Guarde el flujo. El diseñador de flujo debe tener un aspecto similar al de la imagen siguiente.

    Diagrama del flujo completado que muestra dos pasos antes de una condición y un paso en la ruta de acceso verdadera de la condición.

  7. ¡Pruébelo! Use el botón Probar de la página del editor de flujo o ejecute el flujo a través de la pestaña Mis flujos . Asegúrese de permitir el acceso cuando se le solicite.

Vídeo de entrenamiento: Ejecución de un script en todos los archivos de Excel de una carpeta

Vea cómo Sudhi Ramamurthy recorre este ejemplo en YouTube.