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. Ele 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.
Exemplo de arquivos do Excel
Baixe highlight-alert-excel-files.zip para todas as pastas de trabalho que você precisará para este exemplo. Extraia esses arquivos para uma pasta intitulada Vendas. Adicione o script a seguir à coleção de scripts para experimentar o exemplo por conta própria!
Código de exemplo: adicionar formatação e inserir comentário
Este é o script que é executado em cada pasta de trabalho individual. No Excel, use Automatizar>Novo Script para colar o código e salvar o script. Salve-o como Revisar script e experimente o exemplo por conta própria!
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".
Crie um novo fluxo de nuvem instantânea.
Escolha Disparar manualmente um fluxo e selecione Criar.
No construtor de fluxos, selecione o + botão e Adicione uma ação. Use os arquivos list do conector OneDrive for Business em ação de pasta. Use os valores a seguir para a ação.
- Pasta: /Sales (selecionado pelo seletor de arquivos)
Verifique se somente as 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: (da lista suspensa)
- Escolha um valor: .xlsx
No branch True , 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: Revisar script
Salve o fluxo. O designer de fluxo deve se parecer com a imagem a seguir.
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.