Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tutorial ensina-o a utilizar um Script do Office para Excel com um fluxo de trabalho automatizado do Power Automate . O script é executado automaticamente sempre que receber um e-mail, gravando informações do e-mail num livro do Excel. Ser capaz de passar os dados de outros aplicativos para um Script do Office oferece a você uma grande flexibilidade e liberdade nos seus processos automatizados.
Dica
Se não estiver familiarizado com os Scripts do Office, comece por Tutorial: Criar e formatar uma tabela do Excel. Se não estiver familiarizado com o Power Automate, comece por Tutorial: Atualizar uma folha de cálculo a partir de um fluxo do Power Automate. Os Scripts do Office usam TypeScript e este tutorial se destina a pessoas com conhecimento de nível iniciante a intermediário em JavaScript ou TypeScript. Se não estiver familiarizado com JavaScript, comece com o tutorial JavaScript do Mozilla.
Pré-requisitos
Precisará de acesso aos Scripts do Office e ao Power Automate para este tutorial. Reveja o Suporte da plataforma se o separador Automatizar não for apresentado. As FAQ sobre a inscrição no Power Automate têm informações sobre como começar a utilizar o Power Automate.
Preparar a pasta de trabalho
O Power Automate não pode usarreferências relativascomoWorkbook.getActiveWorksheetacessar componentes da pasta de trabalho. Por isso, precisa de um livro e de uma folha de cálculo com nomes consistentes para o Power Automate referenciar.
Criar um nome para a pasta de trabalhoMyWorkbook.
Aceda ao separador Automatizar e selecione Novo Script.
Substitua o código existente pelo seguinte script e selecione Executar. Este passo configura o livro com nomes consistentes de folhas de cálculo, tabelas e tabelas dinâmicas.
function main(workbook: ExcelScript.Workbook) { // Add a new worksheet to store the email table. let emailsSheet = workbook.addWorksheet("Emails"); // Add data and create a table emailsSheet.getRange("A1:D1").setValues([ ["Date", "Day of the week", "Email address", "Subject"] ]); let newTable = workbook.addTable(emailsSheet.getRange("A1:D2"), true); newTable.setName("EmailTable"); // Add a new PivotTable to a new worksheet let pivotWorksheet = workbook.addWorksheet("Subjects"); let newPivotTable = workbook.addPivotTable("Pivot", "EmailTable", pivotWorksheet.getRange("A3:C20")); // Setup the pivot hierarchies newPivotTable.addRowHierarchy(newPivotTable.getHierarchy("Day of the week")); newPivotTable.addRowHierarchy(newPivotTable.getHierarchy("Email address")); newPivotTable.addDataHierarchy(newPivotTable.getHierarchy("Subject")); }
Criar um Script do Office
Crie um script que registe informações a partir de um e-mail. Quer controlar os dias da semana que recebe mais e-mails e quantos remetentes exclusivos enviam esse e-mail. O seu livro tem uma tabela com as colunas Data, Dia da semana, endereço Email e Assunto. A sua folha de cálculo também tem uma tabela dinâmica que é dinâmica no Dia da semana e Email endereço (estas são as hierarquias de linhas). A contagem de assuntos exclusivos são as informações agregadas que estão sendo exibidas (a hierarquia de dados). O script atualiza essa tabela dinâmica depois de atualizar a tabela de e-mail.
No painel de tarefas do Editor de código, selecione Novo script.
O fluxo que criar mais tarde no tutorial envia as informações do script sobre cada e-mail recebido. O script precisa aceitar essa entrada pelos parâmetros na
mainfunção. Substitua o script padrão pelo script abaixo.function main( workbook: ExcelScript.Workbook, from: string, dateReceived: string, subject: string) { }O script precisa acessar a tabela e a tabela dinâmica da pasta de trabalho. Adicione o seguinte código ao corpo do script, após a abertura
{.// Get the email table. let emailWorksheet = workbook.getWorksheet("Emails"); let table = emailWorksheet.getTable("EmailTable"); // Get the PivotTable. let pivotTableWorksheet = workbook.getWorksheet("Subjects"); let pivotTable = pivotTableWorksheet.getPivotTable("Pivot");O
dateReceivedparâmetro é do tipostring. Converta-o numDateobjeto para que possa obter facilmente o dia da semana. Depois de o fazer, tem de mapear o valor de número do dia para uma versão mais legível. Adicione o seguinte código ao fim do script, antes de fechar}.// Parse the received date string to determine the day of the week. let emailDate = new Date(dateReceived); let dayName = emailDate.toLocaleDateString("en-US", { weekday: 'long' });A
subjectcadeia pode incluir a etiqueta de resposta "RE:". Remova essa etiqueta da cadeia para que os e-mails no mesmo tópico tenham o mesmo assunto para a tabela. Adicione o seguinte código ao fim do script, antes de fechar}.// Remove the reply tag from the email subject to group emails on the same thread. let subjectText = subject.replace("Re: ", ""); subjectText = subjectText.replace("RE: ", "");Agora que os dados de e-mail estão formatados, adicione uma linha à tabela de e-mail. Adicione o seguinte código ao fim do script, antes de fechar
}.// Add the parsed text to the table. table.addRow(-1, [dateReceived, dayName, from, subjectText]);Por fim, certifique-se de que a Tabela Dinâmica foi atualizada. Adicione o seguinte código no final do script (antes do encerramento
}):// Refresh the PivotTable to include the new row. pivotTable.refresh();Renomeie seu script Gravar Email e selecione Salvar script.
O seu script já está pronto para um fluxo de trabalho automatizado. Deverá ter um aspeto semelhante ao seguinte script.
function main(
workbook: ExcelScript.Workbook,
from: string,
dateReceived: string,
subject: string) {
// Get the email table.
let emailWorksheet = workbook.getWorksheet("Emails");
let table = emailWorksheet.getTable("EmailTable");
// Get the PivotTable.
let pivotTableWorksheet = workbook.getWorksheet("Subjects");
let pivotTable = pivotTableWorksheet.getPivotTable("Pivot");
// Parse the received date string to determine the day of the week.
let emailDate = new Date(dateReceived);
let dayName = emailDate.toLocaleDateString("en-US", { weekday: 'long' });
// Remove the reply tag from the email subject to group emails on the same thread.
let subjectText = subject.replace("Re: ", "");
subjectText = subjectText.replace("RE: ", "");
// Add the parsed text to the table.
table.addRow(-1, [dateReceived, dayName, from, subjectText]);
// Refresh the PivotTable to include the new row.
pivotTable.refresh();
}
Criar um fluxo de trabalho automatizado com o Power Automate
Entre no site do Power Automate.
No menu no lado esquerdo do ecrã, selecione Criar. Esta seleção leva-o a uma lista de formas de criar novos fluxos de trabalho.
Na seção Começar no espaço em branco, selecione Fluxo automático. Esta seleção cria um fluxo de trabalho acionado por um evento, como receber um e-mail.
Na caixa de diálogo exibida, insira o nome para seu fluxo na caixa de textoNome de Fluxo. Em Escolher o acionador do fluxo, selecione Quando é recebido um novo e-mail na lista de opções. Poderá ter de procurar a opção utilizando a caixa de pesquisa. Por fim, selecione Criar.
Observação
Este tutorial usa o Outlook. Em alternativa, pode utilizar o seu serviço de e-mail preferencial, mas algumas opções podem ser diferentes.
No construtor de fluxos, selecione o + botão e Adicionar uma ação.
No painel de tarefas Adicionar uma ação , procure "Script de execução do Excel". Selecione a ação Executar script do conector do Excel Online (Empresas). Esta ação executa um script a partir do seu OneDrive num livro. Se quiser utilizar um script armazenado na biblioteca do SharePoint da sua equipa, utilize a ação Executar script a partir de uma biblioteca do SharePoint .
Poderá ser-lhe pedido para iniciar sessão na sua conta do Microsoft 365. Inicie sessão para continuar o tutorial.
Em seguida, selecione o livro e o script a utilizar no passo de fluxo. Para o tutorial, utilize o livro que criou no seu OneDrive, mas pode utilizar qualquer livro num site do OneDrive ou do SharePoint. Especifique os seguintes parâmetros para a ação Executar script :
- Localização: OneDrive for Business
- Biblioteca de Documentos: OneDrive
- Arquivo: MyWorkbook.xlsx (Escolhido por meio do navegador de arquivos)
- Script: Gravar Email
- ScriptParameters/from: De (conteúdo dinâmico do Outlook)
- ScriptParameters/dateReceived: Hora de Receção (conteúdo dinâmico do Outlook)
- ScriptParameters/subject: Assunto (conteúdo dinâmico do Outlook)
Tenha em atenção que os parâmetros do script só são apresentados depois de selecionar o script.
Selecione Salvar.
Agora, o fluxo está habilitado. Executa automaticamente o script sempre que receber um e-mail através do Outlook.
Gerenciar o script no Power Automate
Na página principal do Power Automate, selecione Meus fluxos.
Selecione o seu fluxo. Aqui você pode ver o histórico de execução. Você pode atualizar a página ou selecionar o botão atualizar Executar Todos para atualizar o histórico. O fluxo é acionado pouco depois de ser recebido um e-mail. Testar o fluxo enviando a si mesmo um email.
Quando o fluxo aciona e executa o script com êxito, verá a tabela do livro e a atualização da Tabela Dinâmica.
Solução de problemas
Receber vários emails ao mesmo tempo pode causar conflitos de mesclagem no Excel. Esse risco é mitigado configurando o conector de email para atuar apenas em um email por vez. Para efetuar este passo:
Selecione a ação "o e-mail chega" e, em seguida, selecione Definições.
Nas opções Configurações que aparecem, consulte o Controle de Simultaneidade como Ativado. Em seguida, consulte o Grau de Paralelismo como 1.
Próximas etapas
Tutorial Completo: Enviar lembretes de e-mail semanais com base nos dados da folha de cálculo. Ele ensina como retornar dados de um script para o fluxo.
Você também pode conferir o exemplo de lembretes automáticos de tarefas para aprender a combinar os Scripts do Office e Power Automate com as placas adaptáveis de equipes.