Apresentando funções personalizadas para macros ONLYOFFICE

10 julho 2024By Klaibson

Estamos entusiasmados em apresentar funções personalizadas em ONLYOFFICE Docs 8.1. Este novo recurso aprimorará significativamente sua experiência com macros no Editor de planilhas do ONLYOFFICE.

Apresentando funções personalizadas para macros ONLYOFFICE

Sobre funções personalizadas

É um recurso que permite inserir funções personalizadas para cálculo de diversos parâmetros e fórmulas. Com ele você pode adicionar funções específicas para realizar cálculos específicos, que podem então ser usadas em seu código de macro.

Aqui está um exemplo de função personalizada que calcula a soma de dois números com base em condições específicas:

Apresentando funções personalizadas para macros ONLYOFFICEApresentando funções personalizadas para macros ONLYOFFICE

Aqui está como usamos esta função em nosso código de macro:

Apresentando funções personalizadas para macros ONLYOFFICE

E o resultado final é:

Apresentando funções personalizadas para macros ONLYOFFICE

Onde encontrar: Editor de planilhas > aba Plugins > Macros > Funções personalizadas

Mais exemplos

Vamos explorar mais exemplos de funções personalizadas:

  • Média geométrica
    A média geométrica é uma medida de tendência central útil para conjuntos de dados que envolvem multiplicação ou abrangem várias ordens de grandeza. É calculado como a enésima raiz do produto de N números:

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

Vamos implementar uma função personalizada para a média geométrica usando JavaScript. Utilizaremos o método 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);
})();

Como você pode ver, usamos o método Api.AddCustomFunction para adicionar a função gm e torná-la executável em nosso escopo de macro.

Agora vamos invocá-lo em nosso código de macro:

(function()
{
var oWorksheet = Api.GetActiveSheet();
oWorksheet.GetRange("A1").SetValue("=GM(16, 36)");
})();
  • Média harmônica
    A média harmônica é uma medida de tendência central útil para conjuntos de dados que envolvem taxas ou proporções. É particularmente apropriado quando os valores dos dados são definidos em relação a alguma unidade, como velocidade (distância por tempo) ou densidade (massa por volume).

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

Aqui está a implementação da função personalizada:

(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);
})();

E a implementação macro:

(function()
{
var oWorksheet = Api.GetActiveSheet();
oWorksheet.GetRange("A1").SetValue("=HM(16, 36)");
})();
  • Raiz quadrada média
    A raiz quadrada média (RMS) é uma medida estatística da magnitude de uma quantidade variável. É especialmente útil em contextos onde os valores podem ser positivos ou negativos e você deseja medir o tamanho geral sem levar em conta o sinal.

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

Para construir esta função personalizada usaremos novamente o método Math.sqrt, mas com parâmetros diferentes:

(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);
})();

E invocamos a função em nosso código de macro:

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

Agora vamos ver essas funções personalizadas em ação!

Esperamos que esse recurso recém-adicionado se torne um recurso valioso em seu kit de ferramentas, agilizando seu fluxo de trabalho com a capacidade de criar funções personalizadas de acordo com suas necessidades. No ONLYOFFICE, nosso principal objetivo é capacitá-lo a se destacar, implementando ferramentas e recursos inovadores. Se você tiver alguma dúvida ou sugestão, não hesite em falar conosco. Sua opinião é muito apreciada e estamos abertos à discussão e colaboração.

Crie sua conta gratuita no ONLYOFFICE

Visualize, edite e colabore em documentos, planilhas, slides, formulários e arquivos PDF online.