Skip to content

Instantly share code, notes, and snippets.

@ErickPetru
Last active November 18, 2021 14:31
Show Gist options
  • Save ErickPetru/df9921352bb871c99cde40b4dac21317 to your computer and use it in GitHub Desktop.
Save ErickPetru/df9921352bb871c99cde40b4dac21317 to your computer and use it in GitHub Desktop.
name: Lista de Exercícios 3 - Item 2
description: ''
host: EXCEL
api_set: {}
script:
content: "const 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 // Limpa qualquer formatação pré-existente na planilha.\r\n sheet.getUsedRange().clear(\"Formats\");\r\n\r\n // Tenta obter uma tabela já existente na planilha.\r\n let table = sheet.tables.getItemOrNullObject(\"NotasAlunos\");\r\n table.load(\"isNullObject\"); // Informa a propriedade que precisa carregar...\r\n await context.sync(); // Aguarda carregar o valor da propriedade em memória.\r\n\r\n // Aí pode usar a propriedade para ver se não tem a tabela criada...\r\n if (table.isNullObject) {\r\n // Neste caso, cria uma nova tabela Excel no intervalo de células usadas.\r\n table = sheet.tables.add(sheet.getUsedRange(), true);\r\n table.name = \"NotasAlunos\";\r\n }\r\n\r\n // Define o estilo desejado.\r\n table.style = \"TableStyleMedium18\";\r\n\r\n // Ordena alfabeticamente a primeira coluna da tabela.\r\n table.sort.apply([{ key: 0, ascending: true }]);\r\n\r\n // Obtém as células do corpo da tabela.\r\n const tableBody = table.getDataBodyRange();\r\n\r\n // Formata as três últimas colunas da tabela com formato numérico.\r\n tableBody.getColumnsAfter(-3).numberFormat = [[\"0.0\"]];\r\n\r\n // Obtém a última coluna da tabela e carrega a quantidade de linhas.\r\n const column = tableBody.getLastColumn();\r\n column.load(\"rowCount\"); // Informa a propriedade que precisa carregar...\r\n await context.sync(); // Aguarda carregar o valor da propriedade em memória.\r\n\r\n // Faz uma repetição para passar por cada linha da última coluna.\r\n for (let i = 0; i < column.rowCount; i++) {\r\n // Obtém a linha da repetição atual e carrega seus valores.\r\n const row = column.getRow(i);\r\n row.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 o valor desta linha é menor que seis...\r\n if (row.values[0][0] < 6) {\r\n // Colore seu texto em vermelho.\r\n row.format.font.color = \"Red\";\r\n }\r\n }\r\n });\r\n});\r\n"
language: typescript
template:
content: <button id="button">Formatar Planilha</button>
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