Médiaforma

All posts in API JavaScript

La propriété showGridlines indique si la grille est visible (true) ou cachée (false) dans une feuille. Quelques instructions suffisent pour modifier la visibilité de la grille :

async function grilleOnOff() {

  await Excel.run(async function(context) {

    let copie = context.workbook.worksheets.getItem("copie");

    copie.load("showGridlines");

    await context.sync();

    copie.showGridlines=!copie.showGridlines;

  });

}

Après avoir récupéré la feuille copie :

let copie = context.workbook.worksheets.getItem("copie");

La propriété showGridlines est lue et le proxy de JavaScript est synchronisé pour assurer la disponibilité de cette propriété :

copie.load("showGridlines");

await context.sync();

La valeur de cette propriété est alors inversée pour afficher/cacher la grille :

copie.showGridlines=!copie.showGridlines;

Il est possible de masquer une ou plusieurs feuilles dans un classeur. Dans Excel, il suffit de cliquer du bouton droit sur l’onglet de la feuille à masquer puis de sélectionner Masquer dans le menu contextuel. Pour afficher une feuille masquée, cliquez du bouton droit sur une feuille apparente et sélectionnez Afficher dans le menu contextuel. La boîte de dialogue Afficher apparaît. Sélectionnez la feuille à afficher puis cliquez sur OK.

Voici un exemple de code qui cache ou affiche la feuille copie, en fonction de sa visibilité :

async function changerVisibilite() {

  await Excel.run(async function (context) {

    let copie = context.workbook.worksheets.getItem("copie");

    copie.load('visibility');

    await context.sync();

    if (copie.visibility == 'Visible')

      copie.visibility = 'Hidden'

    else 

      copie.visibility = 'Visible';

  });

}

Après avoir récupéré la feuille avec la méthode getItem() :

let copie = context.workbook.worksheets.getItem("copie");

La propriété visibility est lue et le proxy de JavaScript est synchronisé pour assurer sa disponibilité :

copie.load('visibility');

await context.sync();

Selon la valeur (Visible ou Hidden) de cette propriété, la feuille est cachée ou affichée :

if (copie.visibility == 'Visible')

  copie.visibility = 'Hidden'

else 

  copie.visibility = 'Visible';

Pour supprimer une feuille, vous allez appliquer la récupérer en appliquant la méthode getItem() sur l’objet worksheets, puis lui appliquer la méthode delete().

Ici par exemple, la feuille copie est supprimée :

async function supprimer() {

  await Excel.run(async function (context) {

    let copie = context.workbook.worksheets.getItem("copie");

    copie.delete();

  });

}

Pour copier une feuille existante dans une nouvelle feuille, vous appliquerez la méthode insert() à la feuille que vous voulez copier. Deux paramètres peuvent être passés à la fonction insert() :

  • Le type de positionnement :
    • WorksheetPositionType.after : après une feuille existante.
    • WorksheetPositionType.before : avant une feuille existante.
    • WorksheetPositionType.begining : au début du classeur.
    • WorksheetPositionType.end : à la fin du classeur.
  • La feuille de référence si le positionnement se fait avant (before) ou après (after).

Voici un exemple de code. Ici, la feuille Feuil1 est copiée dans une nouvelle feuille qui sera renommée « copie » :

async function copier() {

  await Excel.run(async function(context) {

    let feuille1 = context.workbook.worksheets.getItem('Feuil1');

    feuille1.copy(Excel.WorksheetPositionType.after,feuille1);   

    let feuille2 = context.workbook.worksheets.getActiveWorksheet();

    feuille2.name = 'copie';

  });

}

Remarque

Si aucun paramètre n’est passé à la méthode copy(), la nouvelle feuille est insérée au début du classeur.


L’ajout d’une feuille de calcul dans le classeur courant est élémentaire : il suffit d’appliquer la méthode add() à l’objet worksheets. La feuille obtenue peut alors être renommée en agissant sur sa propriété name :

async function ajouter() {

  await Excel.run(async function (context) {

    let feuille2 = context.workbook.worksheets.add();

    feuille2.name = 'nouveau';

  });

}

Pour sélectionner les données et non la ligne de titre, vous appliquerez la méthode getDataBodyRange().select() au tableau :

async function selDonnees() {

  await Excel.run(async function(context) {

    let feuille = context.workbook.worksheets.getActiveWorksheet();

    let t = feuille.tables.getItem("ventes");

    t.getDataBodyRange().select();

    await context.sync();

  });

}

Sélection de tout le tableau

Pour sélectionner la totalité du tableau, vous appliquerez la méthode getRange().select() au tableau :

async function selTableau() {

  await Excel.run(async function(context) {

    let feuille = context.workbook.worksheets.getActiveWorksheet();

    let t = feuille.tables.getItem("ventes");

    t.getRange().select();

  });

}

Sélection de la colonne Prix

Enfin, pour sélectionner la colonne Prix, vous appliquerez la méthode columns.getItem(“Prix”).getRamge()/select() au tableau:

async function selColPrix() {

  await Excel.run(async function(context) {

    let feuille = context.workbook.worksheets.getActiveWorksheet();

    let t = feuille.tables.getItem("ventes");

    t.columns.getItem("Prix").getRange().select();

  });

}

Cette section va vous montrer comment sélectionner la ligne de titre dans le tableau.

async function selTitres() {

  await Excel.run(async function(context) {

    let feuille = context.workbook.worksheets.getActiveWorksheet();

    let t = feuille.tables.getItem("ventes");

    t.getHeaderRowRange().select();

  });

}

Après avoir récupéré le tableau ventes dans la feuille courante :

let feuille = context.workbook.worksheets.getActiveWorksheet();

let t = feuille.tables.getItem("ventes");

La méthode getHeaderRowRange().select() est appliquée au tableau :

t.getHeaderRowRange().select();