Partilhar via


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

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

Ficheiros do Excel de exemplo

Transfira highlight-alert-excel-files.zip para todos os livros de que precisa para este exemplo. Extraia esses ficheiros para uma pasta intitulada Vendas. Adicione o seguinte script à coleção de scripts para experimentar o exemplo!

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

Este é o script que é executado em cada livro individual. No Excel, utilize Automatizar a Criação> deNovo Script>no Editor de Código para colar o código e guardar o script. Guarde-o como Rever script e experimente o exemplo!

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: executar o script em todos os livros na pasta

Este fluxo executa o script em todos os livros na pasta "Vendas".

  1. Criar um novo fluxo de cloud instantânea.

  2. Selecione Acionar manualmente um fluxo e selecione Criar.

  3. No construtor de fluxos, selecione o + botão e Adicionar uma ação. Utilize os ficheiros lista do conector OneDrive for Business na ação de pasta. Utilize os seguintes valores para a ação.

    • Pasta: /Vendas (selecionada pelo seletor de ficheiros)

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

  4. Certifique-se de que apenas os livros estão selecionados. Adicione uma nova ação de controlo Condição . Utilize os seguintes valores para a condição.

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

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

  5. No ramo Verdadeiro , adicione uma nova ação. Selecione a ação Executar script do conector do Excel Online (Empresas). Utilize os seguintes valores para a ação.

    • Localização: OneDrive for Business
    • Biblioteca de Documentos: OneDrive
    • Ficheiro: ID (conteúdo dinâmico de Listar ficheiros na pasta)
    • Script: Rever script

    O conector completo do Excel Online (Empresas) no Power Automate.

  6. Guarde o fluxo. O estruturador de fluxo deve ter um aspeto semelhante à imagem seguinte.

    Um diagrama do fluxo concluído que mostra dois passos antes de uma condição e um passo no caminho verdadeiro da condição.

  7. Experimente! Utilize o botão Testar na página do editor de fluxos ou execute o fluxo através do separador Os meus fluxos . Certifique-se de que permite o acesso quando lhe for pedido.

Vídeo de formação: Executar um script em todos os ficheiros do Excel numa pasta

Veja Sudhi Ramamurthy a percorrer este exemplo no YouTube.