Compartilhar via


Usar chamadas de busca externa em Scripts do Office

Este 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 ou outras chamadas externas, leia Suporte a chamadas 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 de chamada de API bruta visitando https://api.github.com/users/{USERNAME}/repos em um navegador da Web (certifique-se de substituir o espaço reservado {USERNAME} pela ID do GitHub).

Obter exemplo de informações de repositórios

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

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 externas

Assista Sudhi Ramamurthy percorrer este exemplo no YouTube.