Médiaforma

posts

La documentation officielle de l’API JavaScript pour Excel est accessible en cliquant sur ce lien :

https://bit.ly/32MqNpk

N’hésitez pas à vous y reporter pour avoir des exemples de code, ou si vous éprouvez des difficultés sur un point particulier. Et surtout, passez du temps à coder. Petit à petit, tout deviendra de plus en plus simple.

Pour faire vos premiers pas avec l’API JavaScript dans Excel, je vous suggère d’installer le complément Script Lab. Ce complément va vous permettre de :

  • Créer et éditer des codes qui contiennent du code JavaScript/TypeScript, HTML, CSS et qui font éventuellement référence à des données sur le Web.
  • Exécuter ces codes et voir le résultat sans quitter Excel.
  • Accéder à des exemple de code.
  • Partager directement votre code sur GitHub Gist.

En outre, vous profiterez pleinement de l’intellisense pour mettre au point plus facilement et plus rapidement vos compléments. Vous pourrez utiliser TypeScript 2.0+ et ses fonctionnalités avancées (expressions lambda, chaines modèle, async/await, etc.).

La prochaine étape va consister à installer Script Lab dans Excel.


Vous utilisez la suite bureautique LibreOffice et vous voulez accélérer son démarrage ? Vous êtes au bon endroit.

Si vous n’avez pas encore installé LibreOffice sur votre ordinateur, lisez l’article Installer LibreOffice.

Pour accélérer le lancement d’une application LibreOffice (Calc par exemple), il suffit d’ajouter le paramètre -nologo dans le raccourci de l’application. Ainsi, le logo de LibreOffice ne sera pas affiché au lancement de l’application et vous gagnerez une seconde dans son démarrage.

Cliquez du bouton droit sur l’icône de raccourci de l’application concernée et choisissez Propriétés dans le menu contextuel. La boîte de dialogue des propriétés s’affiche. Sous l’onglet Raccourci, dans la zone de texte Cible, ajoutez -nologo à la suite du chemin du raccourci, après les guillemets. Validez en cliquant sur OK :

Vous voulez vous former à LibreOffice ? Trois formations vidéo sont disponibles. Cliquez sur les images suivantes pour y accéder :

      

Vous préférez les manuels illustrés aux vidéos ? Cliquez sur les images suivantes pour y accéder :


Cet article passe très rapidement en revue les petits plus de TypeScript. Il est destiné aux personnes qui ne connaissent pas (encore) TypeScript.

Typage des variables

Contrairement à JavaScript, TypeScript est un langage fortement typé.

Lorsque vous définissez une variable ou une constante, vous pouvez définir son type de façon explicite. Les trois principaux types sont number, string et boolean.

Par exemple :

let nombre: number = 100;

const chaine: string = 'Une chaîne de caractères';

let boo: boolean = true;

Le typage peut également se faire d’une façon implicite, lors de l’affectation :

let nombre = 100;

const chaine = 'Une chaîne de caractères';

let boo = true;

Ici, nombre est clairement de type number, chaine de type string et boo de type boolean.

Chaînes de caractères

Les chaînes de caractères peuvent être définies sur plusieurs lignes en les encadrant par des cotes penchées (`). Ces cotes sont accessibles en appuyant simultanément sur les touches Alt Gr et 7.

let chaine = `Cette chaîne
est définie

sur plusieurs lignes`;

Il est possible d’inclure des variables ou des expressions dans des chaînes en les encapsulant entre ${} :

let a = 10;

let chaine = `La variable a vaut ${a}.`;

Enumérations

Vous pouvez définir des énumérations en TypeScript :

enum taille {

  grand = 10,

  moyen = 5,

  petit = 0;

}

Déstructuration

Il est possible d’affecter simultanément plusieurs données en utilisant des tableaux ou des objets littéraux :

let [a,b,c] = ['a','b','c'];

let t = ['d','e','f'];

[a,b,c] = t; //Déstructuration de tableau

console.log(a,b,c); // d e f

let rect = { x: 1, y: 2, width: 3, height: 4 };

let { width, height, x, y } = rect; //Déstructuration de littéral

console.log(x, y, width, height); // 1,2,3,4

Fonctions fléchées (arrow functions)

Ce code :

let resultat = function(a,b) {

  return a*b;

}

Est équivalent à :

let resultat = (a,b) =>  a*b;

Variables immuables

Les variables définies dans une méthode peuvent être immuables (constantes). Pour les déclarer, vous utiliserez le mot-clé const :

const a = 5;

const taille = {

  largeur: 100,

  hauteur : 30

}

Il existe de nombreux autres concepts très intéressants en TypeScript, mais cette brève introduction devrait suffire pour manipuler Excel à travers l’API. Si vous voulez aller plus loin, je vous suggère de consulter ce site : https://cdiese.fr/syntaxe-typescript-en-10-min/.


Dans Excel 2019, il n’est pas nécessaire d’utiliser une calculatrice ou de définir des formules pour calculer rapidement une somme ou une moyenne : il suffit de sélectionner la zone qui contient les données. La somme et la moyenne apparaissent alors dans la zone de calcul automatique.

Si vous voulez afficher un autre calcul, cliquez du bouton droit sur la barre d’état d’Excel et choisissez l’opération désirée. Vous pourrez ainsi connaitre :

  • Le nombre de cellules non vides.
  • Le nombre de cellules sélectionnées.
  • La valeur minimale de la sélection.
  • La valeur maximale de la sélection.

Pour insérer des formes prédéfinies (rectangles, ovales, flèches, étoiles, diagrammes de flux, etc.) dans une diapositive, sélectionnez l’onglet Insertion dans le ruban, cliquez sur l’icône Formes dans le groupe Illustrations et choisissez l’une des formes disponibles dans le menu.

Maintenez enfoncé le bouton gauche de la souris et dessinez la forme. Lorsque vous relâchez le bouton, la forme est insérée dans la diapositive et l’onglet Outils de dessin/Format est ajouté au ruban et automatiquement sélectionné.

Il est parfois nécessaire d’insérer du texte dans une forme. Pour ce faire, cliquez du bouton droit sur la forme et choisissez Modifier le texte dans le menu contextuel. Il ne vous reste plus qu’à insérer le texte en le saisissant directement au clavier.


Pour créer un nouvel en-tête, sélectionnez l’onglet Insertion dans le ruban, cliquez sur l’icône En-tête dans le groupe En-tête et pied de page et sélectionnez l’un des en-têtes prédéfinis.

L’en-tête est inséré et a le focus, c’est-à-dire l’attention du clavier et de la souris. Remarquez que l’onglet Outils En-têtes et pieds de page/Création a été ajouté au ruban. Double-cliquez dans le document pour donner le focus au document. L’onglet Outils En-têtes et pieds de page/Création disparait.

Pour modifier l’en-tête que vous venez d’insérer, double-cliquez dans l’en-tête pour lui donner le focus. L’onglet Outils En-têtes et pieds de page/Création est ajouté au ruban. Par son intermédiaire, vous pourrez, par exemple, insérer les numéros des pages, la date et l’heure, des images ou des cliparts.

Remarquez l’icône QuickPart dans le groupe Insérer. Il vous permet entre autres d’accéder aux propriétés du document et aux insertions automatiques. Si vous sélectionnez Organisateur de blocs de construction dans le menu, vous avez accès à plusieurs objets préformatés qui donnent un aspect professionnel à votre en-tête. Ces objets sont appelés « blocs de construction ». Vous pouvez les personnaliser pour qu’ils s’intègrent parfaitement dans vos documents.

Les commandes de l’onglet Création ne sont pas les seules utilisables : toutes les commandes de mise en forme au niveau caractère et paragraphe peuvent également être utilisées. Ces commandes se trouvent dans l’onglet Accueil du ruban et en particulier dans les groupes Police et Paragraphe. Vous pouvez également faire appel aux commandes de l’onglet Création.

Tout ce qui a été dit au niveau des en-têtes s’applique également aux pieds de page. Pour créer un pied de page, sélectionnez l’onglet Insertion dans le ruban, cliquez sur l’icône Pied de page dans le groupe En-tête et pied de page et sélectionnez l’un des pieds de page prédéfinis. Vous pourrez ensuite utiliser les commandes des onglets Outils En-têtes et pieds de page/Création, Accueil et Création pour modifier le contenu et mettre en forme vos pieds de page.


La bibliothèque Moment.js est très pratique car elle contient des fonctions pour soustraire et pour ajouter des informations horaires.

Voici quelques exemples.

La date dans 25 jours

Pour connaitre la date dans 25 jours, vous utiliserez la fonction moment().date(25,’days’).calendar() :

async function dans25jours() {

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

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

    let date = moment().add(25,'days').calendar();

    feuille.getRange("A3").numberFormat = [["dddd D/MM/YYYY"]];

    feuille.getRange("A3").values = [[date]];

    await context.sync();

  });

}

Ce code est très semblable aux précédents, si ce n’est l’utilisation de la fonction add() pour obtenir la date dans 25 jours :

let date = moment().add(25,'days').calendar();

Voici un exemple d’exécution :

L’heure il y a 6 heures 30

Il est très simple de connaitre l’heure il y a 6 heures 30. Vous utiliserez pour cela la fonction moment().date(6.5,’hours’).calendar() :

async function ilya6heures30() {

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

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

    let date = moment().subtract(6.5, 'hours').calendar();

    feuille.getRange("B3").numberFormat = [["hh:mm:ss"]];

    feuille.getRange("B3").values = [[date]];

    await context.sync();

  });

}

Voici un exemple d’exécution :