Médiaforma

API JS dans Excel – Propriétés d’un classeur, d’une cellule et d’un graphique

Partagez cet article sur vos réseaux

Pour interagir avec un classeur Excel, vous allez passer par le modèle objet Excel, via la fonction asynchrone Excel.run(). Vous utiliserez ce « squelette standard » :

$('#run').click(() => tryCatch(run));

async function run() {

  await Excel.run(async (context) => {

    // Entrez votre code ici

    console.log("La fonction run() s'est exécutée");

    await context.sync();

  });

}

async function tryCatch(callback) {

  try {

    await callback();

  } catch (error) {

    console.error(error);

  }

}

Ce code est disponible en cliquant ici

La plupart de ces instructions devraient vous être familières.

Quelques nouveautés cependant.

La fonction Excel.run() exécute des instructions JavaScript / TypeScript qui interagissent de façon asynchrone sur le modèle objet Excel via l’objet context. Cet objet représente l’environnement runtime d’Excel. C’est à travers lui que vous pourrez interagir en lecture et en écriture sur vos classeurs.

Les objets JavaScript définis dans un complément Excel sont des proxy. Lorsque vous utilisez des propriétés (en lecture ou en écriture) de ces objets, ou lorsque vous leur appliquez des méthodes, les instructions correspondantes sont placées dans une file d’attente.

L’instruction await context.sync() exécute les commandes qui sont dans la file d’attente. En d’autres termes, elle synchronise l’état entre les objets proxy de JavaScript et les objets réels dans Excel. Elle doit être systématiquement utilisée dans la fonction Excel.run().

Pour créer ce squelette standard, cliquez sur l’icône de menu dans le volet Code (1), puis cliquez sur New Snippet (2) :

Comme vous pouvez le voir, le code généré est légèrement différent du squelette standard. Il contient en particulier une autre instruction :

Cette instruction récupère le classeur actif et le place dans la constante sheet.

En agissant sur cette constante via des propriétés et des méthodes, vous allez pouvoir lire et modifier le contenu de la feuille courante et, si nécessaire, modifier son apparence.