Compartir a través de


Usar llamadas de captura externa en Scripts de Office

Este script obtiene información básica sobre los repositorios de GitHub de un usuario. Muestra cómo usar fetch en un escenario sencillo. Para obtener más información sobre el uso fetch de u otras llamadas externas, consulte Compatibilidad con llamadas API externas en scripts de Office. Para obtener información sobre cómo trabajar con objetos JSON , como lo que devuelven las API de GitHub, lea Uso de JSON para pasar datos hacia y desde scripts de Office.

Obtenga más información sobre las API de GitHub que se usan en la referencia de la API de GitHub. También puede ver la salida de la llamada API sin procesar visitando https://api.github.com/users/{USERNAME}/repos en un explorador web (asegúrese de reemplazar el marcador de posición {USERNAME} por el identificador de GitHub).

Ejemplo de información de obtención de repositorios

Código de ejemplo: obtener información básica sobre los repositorios de GitHub del usuario

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 entrenamiento: Cómo realizar llamadas API externas

Vea cómo Sudhi Ramamurthy recorre este ejemplo en YouTube.