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).
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
}