Поделиться через


Запуск сценария для всех файлов Excel в папке

Этот проект выполняет набор задач автоматизации для всех файлов, расположенных в папке на OneDrive для бизнеса. Его также можно использовать в папке SharePoint. Он выполняет вычисления для файлов Excel, добавляет форматирование и вставляет комментарий, который @mentions коллеге.

Примеры файлов Excel

Скачайте highlight-alert-excel-files.zip для всех книг, необходимых для этого примера. Извлеките эти файлы в папку Sales. Добавьте следующий скрипт в коллекцию скриптов, чтобы попробовать пример самостоятельно!

Пример кода: добавление форматирования и вставка комментария

Это скрипт, который выполняется в каждой отдельной книге. В Excel используйте команду Автоматизировать>новый скрипт , чтобы вставить код и сохранить скрипт. Сохраните его как скрипт проверки и попробуйте пример самостоятельно!

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);
}

Поток Power Automate: выполнение скрипта для каждой книги в папке

Этот поток выполняет скрипт для каждой книги в папке Sales.

  1. Создайте мгновенный облачный поток.

  2. Выберите Вручную активировать поток и нажмите кнопку Создать.

  3. В построителе потоков нажмите кнопку + и добавьте действие. Используйте действие списка файлов соединителя OneDrive для бизнесав папке. Используйте следующие значения для действия.

    • Папка: /Sales (выбранная в средства выбора файлов)

    Готовый соединитель OneDrive для бизнеса в Power Automate.

  4. Убедитесь, что выбраны только книги. Добавьте новое действие элемента управления Условие . Используйте следующие значения для условия.

    • Выберите значение: Name (динамическое содержимое из списка файлов в папке)
    • заканчивается на: (из раскрывающегося списка)
    • Выберите значение: .xlsx

    Блок условия Power Automate, который применяет последующие действия к каждому файлу.

  5. В ветви True добавьте новое действие. Выберите действие Выполнить скрипт соединителя Excel Online (бизнес). Используйте следующие значения для действия.

    • Расположение: OneDrive для бизнеса
    • Библиотека документов: OneDrive
    • File: Id (динамическое содержимое из списка файлов в папке)
    • Скрипт: проверка скрипта

    Готовый соединитель Excel Online (бизнес) в Power Automate.

  6. Сохраните поток. Конструктор потоков должен выглядеть так, как показано на следующем рисунке.

    Схема завершенного потока, на которую показаны два шага перед условием и один шаг в истинном пути условия.

  7. Попробуйте! Нажмите кнопку Тестировать на странице редактора потоков или запустите поток через вкладку Мои потоки . Обязательно разрешите доступ при появлении запроса.

Обучающее видео: запуск скрипта для всех файлов Excel в папке

Посмотрите Судхи Рамамурти, пройдите этот пример на YouTube.