Executar um script em todos os arquivos do Excel em uma pasta

Este projeto executa um conjunto de tarefas de automação em todos os arquivos situados em uma pasta no OneDrive for Business. Também pode ser usado em uma pasta do SharePoint. Ele executa cálculos nos arquivos do Excel, adiciona formatação e insere um comentário que @mentions um colega.

Arquivos Excel de exemplo

Baixe highlight-alert-excel-files.zip para todas as pastas de trabalho necessárias para este exemplo. Extraia esses arquivos para uma pasta intitulada Vendas. Adicione o script a seguir à sua coleção de scripts para experimentar o exemplo por conta própria!

Código de exemplo: Adicionar formatação e inserir comentário

Esse é o script que é executado em cada pasta de trabalho individual. No Excel, use Automatizar>a criação de novo script>no Editor de código para colar o código e salvar o script. Salve-o como Script de revisão e experimente o exemplo você mesmo!

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

Fluxo do Power Automate: Execute o script em cada pasta de trabalho na pasta

Esse fluxo executa o script em cada pasta de trabalho na pasta "Vendas".

  1. Crie um novo fluxo de nuvem do Instant.

  2. Escolha Disparar manualmente um fluxo e selecione Criar.

  3. No construtor de fluxo, selecione o + botão e Adicionar uma ação. Use a ação Listar arquivos na pasta do conector do OneDrive for Business. Use os valores a seguir para a ação.

    • Pasta: /Sales (selecionada pelo seletor de arquivos)

    O conector do OneDrive for Business concluído no Power Automate.

  4. Verifique se apenas pastas de trabalho estão selecionadas. Adicione uma nova ação de controle de condição . Use os valores a seguir para a condição.

    • Escolha um valor: Nome (conteúdo dinâmico de Listar arquivos na pasta)
    • termina com: (na lista suspensa)
    • Escolha um valor: .xlsx

    O bloco de condição Power Automate que aplica ações subsequentes a cada arquivo.

  5. Na ramificação Verdadeiro , adicione uma nova ação. Selecione a ação Executar script do conector do Excel Online (Business). Use os valores a seguir para a ação.

    • Localização: OneDrive for Business
    • Biblioteca de Documentos: OneDrive
    • Arquivo: Id (conteúdo dinâmico de Listar arquivos na pasta)
    • Script: Script de revisão

    O conector do Excel Online (Business) concluído no Power Automate.

  6. Salve o fluxo. O designer de fluxo deve se parecer com a imagem a seguir.

    Um diagrama do fluxo concluído que mostra duas etapas antes de uma condição e uma etapa abaixo do caminho verdadeiro da condição.

  7. Experimente! Use o botão Testar na página do editor de fluxo ou execute o fluxo por meio da guia Meus fluxos . Certifique-se de permitir o acesso quando solicitado.

Vídeo de treinamento: Executar um script em todos os arquivos do Excel em uma pasta

Assista Sudhi Ramamurthy percorrer este exemplo no YouTube.