Usar chamadas de busca externa em Scripts do Office

Esse script obtém informações básicas sobre os repositórios do GitHub de um usuário. Ele mostra como usar fetch em um cenário simples. Para obter mais informações sobre o uso fetch de chamadas externas, leia Suporte à chamada de API externa em Scripts do Office. Para obter informações sobre como trabalhar com objetos JSON , como o que é retornado pelas APIs do GitHub, leia Usar JSON para passar dados de e para Scripts do Office.

Saiba mais sobre as APIs do GitHub que estão sendo usadas na referência da API do GitHub. Você também pode ver a saída bruta da chamada da API visitando https://api.github.com/users/{USERNAME}/repos em um navegador da Web (certifique-se de substituir o espaço reservado {USERNAME} pela sua ID do GitHub).

Obter exemplo de informações de repositórios

Código de exemplo: obter informações básicas sobre os repositórios GitHub do usuário

Execute o script a seguir na pasta de trabalho de exemplo e experimente o exemplo você mesmo! Abra o Editor de Código acessando Automatizar> a Criação deNovo Script>no Editor de Códigos, substitua o código padrão pelo código de exemplo que você deseja executar e selecione Executar.

async function main(workbook: ExcelScript.Workbook) {
  // Call the GitHub REST API.
  // Replace the {USERNAME} placeholder with your GitHub username.
  const response = await fetch('https://api.github.com/users/{USERNAME}/repos');
  const repos: Repository[] = await response.json();

  // Create an array to hold the returned values.
  const rows: (string | boolean | number)[][] = [];

  // Convert each repository block into a row.
  for (let repo of repos) {
    rows.push([repo.id, repo.name, repo.license?.name, repo.license?.url]);
  }
  // Create a header row.
  const sheet = workbook.getActiveWorksheet();
  sheet.getRange('A1:D1').setValues([["ID", "Name", "License Name", "License URL"]]);

  // Add the data to the current worksheet, starting at "A2".
  const range = sheet.getRange('A2').getResizedRange(rows.length - 1, rows[0].length - 1);
  range.setValues(rows);
}

// An interface matching the returned JSON for a GitHub repository.
interface Repository {
  name: string,
  id: string,
  license?: License
}

// An interface matching the returned JSON for a GitHub repo license.
interface License {
  name: string,
  url: string
}

Vídeo de treinamento: Como fazer chamadas de API externa

Assista Sudhi Ramamurthy percorrer este exemplo no YouTube.