Création de fonctions personnalisées pour les macros ONLYOFFICE

10 juillet 2024By Dasha

Nous sommes ravis d’introduire les fonctions personnalisées dans ONLYOFFICE Docs 8.1. Cette nouvelle fonctionnalité améliorera considérablement votre expérience avec les macros dans l’éditeur de feuilles de calcul ONLYOFFICE.

Introducing custom functions for ONLYOFFICE macros

À propos des fonctions personnalisées

Il s’agit d’une fonctionnalité qui vous permet d’insérer des fonctions personnalisées pour calculer divers paramètres et formules. Elle permet d’ajouter des fonctions spécifiques pour effectuer des calculs particuliers, qui peuvent ensuite être utilisés dans votre code macro.

Voici un exemple de fonction personnalisée qui calcule la somme de deux nombres en fonction de conditions spécifiques :

Introducing custom functions for ONLYOFFICE macros

Voici comment nous utilisons cette fonction dans notre code macro :

Introducing custom functions for ONLYOFFICE macros

Et le résultat final est le suivant :

Introducing custom functions for ONLYOFFICE macros

Où trouver : Tableur > onglet Modules complémentaires > Macros > Fonctions personnalisées

Autres exemples

Explorons d’autres exemples de fonctions personnalisées :

  • Moyenne géométrique
    La moyenne géométrique est une mesure de la tendance centrale utile pour les ensembles de données qui impliquent une multiplication ou couvrent plusieurs ordres de grandeur. Elle est calculée comme la racine Nth du produit de N nombres :

GM=(∏i=1n​xi​)n1​

Mettons en œuvre une fonction personnalisée pour la moyenne géométrique à l’aide de JavaScript. Nous utiliserons la méthode Math.sqrt :

(function()
{
   /**
     * Function that calculates the geometric mean of two numbers
     * @customfunction

     * @param {number} num1 The first number.
     * @param {number} num2 The second number.
     * @returns {number} The geometric mean of the two numbers.
    */
    function gm(num1, num2) {
        return Math.sqrt(num1 * num2);
    }
    Api.AddCustomFunction(gm);
})();

Comme vous pouvez le voir, nous avons utilisé la méthode Api.AddCustomFunction pour ajouter la fonction gm et la rendre exécutable dans notre portée macro.

Nous allons maintenant l’invoquer dans notre code macro :

(function()
{
var oWorksheet = Api.GetActiveSheet();
oWorksheet.GetRange("A1").SetValue("=GM(16, 36)");
})();
  • Moyenne harmonique
    La moyenne harmonique est une mesure de la tendance centrale utile pour les ensembles de données impliquant des taux ou des ratios. Elle est particulièrement appropriée lorsque les valeurs des données sont définies par rapport à une unité, telle que la vitesse (distance par temps) ou la densité (masse par volume).

H=∑i=1n​xi​1​n​

Voici la mise en œuvre de la fonction personnalisée :

(function()
{
    /**
     * Function that calculates the harmonic mean of two numbers
     * @customfunction

     * @param {number} num1 The first number.
     * @param {number} num2 The second number.
     * @returns {number} The harmonic mean of the two numbers.
    */
    function hm(num1, num2) {
        return 2 / ((1 / num1) + (1 / num2));
    }
    Api.AddCustomFunction(hm);
})();

Et la mise en œuvre de la macro :

(function()
{
var oWorksheet = Api.GetActiveSheet();
oWorksheet.GetRange("A1").SetValue("=HM(16, 36)");
})();
  • Moyenne quadratique
    La moyenne quadratique (RMS) est une mesure statistique de l’ampleur d’une quantité variable. Elle est particulièrement utile dans les contextes où les valeurs peuvent être positives ou négatives et où l’on souhaite mesurer la taille globale sans tenir compte du signe.

RMS=n1​∑i=1n​xi2​​

Pour construire cette fonction personnalisée, nous utiliserons à nouveau la méthode Math.sqrt, mais avec des paramètres différents :

(function()
{
    /**
     * Function that calculates the root mean square (RMS) of two numbers
     * @customfunction

     * @param {number} num1 The first number.
     * @param {number} num2 The second number.
     * @returns {number} The root mean square (RMS) of the two numbers.
    */
    function rms(num1, num2) {
        return Math.sqrt((num1 ** 2 + num2 ** 2) / 2);
    }
    Api.AddCustomFunction(rms);
})();

Et nous invoquons la fonction dans notre code macro :

(function()
{
var oWorksheet = Api.GetActiveSheet();
oWorksheet.GetRange("A1").SetValue("=RMS(5, 8)");
})();

Voyons maintenant ces fonctions personnalisées en action !

Nous espérons que cette nouvelle fonctionnalité deviendra un atout précieux dans votre gamme d’outils, rationalisant votre flux de travail grâce à la possibilité de créer des fonctions personnalisées adaptées à vos besoins. Chez ONLYOFFICE, notre objectif principal est de vous permettre d’exceller en mettant en place des outils et des fonctionnalités innovants. Si vous avez des questions ou des suggestions, n’hésitez pas à nous contacter. Votre contribution est très appréciée, et nous sommes ouverts à la discussion et à la collaboration.

Créez votre compte ONLYOFFICE gratuit

Affichez, modifiez et coéditez des documents texte, feuilles de calcul, diapositives, formulaires et fichiers PDF en ligne.