Skip to content

Instantly share code, notes, and snippets.

@ErickPetru
Last active November 18, 2021 14:33
Show Gist options
  • Save ErickPetru/ec3c658e9906ba968a8e4a8d030ffec2 to your computer and use it in GitHub Desktop.
Save ErickPetru/ec3c658e9906ba968a8e4a8d030ffec2 to your computer and use it in GitHub Desktop.
name: Lista de Exercícios 3 - Item 1
description: ''
host: EXCEL
api_set: {}
script:
content: "const field1 = document.getElementById(\"field1\") as HTMLInputElement;\r\nconst field2 = document.getElementById(\"field2\") as HTMLInputElement;\r\nconst field3 = document.getElementById(\"field3\") as HTMLInputElement;\r\nconst button = document.getElementById(\"button\") as HTMLButtonElement;\r\n\r\nbutton.addEventListener(\"click\", () => {\r\n Excel.run(async (context) => {\r\n // Obtém a planilha ativa.\r\n const sheet = context.workbook.worksheets.getActiveWorksheet();\r\n\r\n // Renomeia a planilha ativa.\r\n sheet.name = \"Notas dos Alunos\";\r\n\r\n // Obtém as quatro primeiras colunas da primeira linha da planilha.\r\n const rangeHeader = sheet.getRange(\"A1:D1\");\r\n\r\n // Espera carregar os valores existentes neste intervalo.\r\n rangeHeader.load(\"values\"); // Informa a propriedade que precisa carregar...\r\n await context.sync(); // Aguarda carregar o valor da propriedade em memória.\r\n\r\n // Se a primeira célula do intervalo estiver vazia...\r\n if (rangeHeader.values[0][0] === \"\") {\r\n // A planilha está vazia, pode escrever o cabeçalho ali.\r\n rangeHeader.values = [[\"Nome\", \"Nota 1\", \"Nota 2\", \"Média Final\"]];\r\n }\r\n\r\n // Pega a linha vazia seguinte ao intervalo de células usadas.\r\n const rangeNextRow = sheet.getUsedRange().getRowsBelow();\r\n\r\n // Obtém as notas digitadas no suplemento e calcula a média.\r\n const grade1 = field2.valueAsNumber;\r\n const grade2 = field3.valueAsNumber;\r\n const average = (grade1 + grade2) / 2;\r\n\r\n // Preenche as informações na próxima linha vazia da planilha.\r\n rangeNextRow.values = [[field1.value, grade1, grade2, average]];\r\n\r\n // Redimensiona todas as colunas para os tamanhos necessários.\r\n sheet.getUsedRange().format.autofitColumns();\r\n\r\n // Limpa os campos do suplemento.\r\n field1.value = \"\";\r\n field2.value = \"\";\r\n field3.value = \"\";\r\n });\r\n});\r\n"
language: typescript
template:
content: "<h1>Notas dos Alunos</h1>\n\n<div>\n\t<input id=\"field1\" placeholder=\"Nome\">\n\t<input id=\"field2\" type=\"number\" placeholder=\"Nota 1\">\n\t<input id=\"field3\" type=\"number\" placeholder=\"Nota 2\">\n\t<button id=\"button\">Adicionar</button>\n</div>"
language: html
style:
content: ''
language: css
libraries: |-
https://appsforoffice.microsoft.com/lib/1/hosted/office.js
@types/office-js
core-js@2.4.1/client/core.min.js
@types/core-js
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment