ONLYOFFICE 宏的自定义函数:简介与示例

2024年07月11日作者: Alina

我们很高兴介绍在 ONLYOFFICE 文档8.1中引入的自定义函数。这项新功能将显著提升您在 ONLYOFFICE 电子表格编辑器中使用宏的体验。

Introducing custom functions for ONLYOFFICE macros

关于自定义函数

这项功能支持插入用于计算各种参数和公式的自定义函数。有了它,您可以添加特定函数来执行特定计算,然后可以在宏代码中使用这些函数。

下面是一个自定义函数的示例,该函数根据特定条件计算两个数字的总和:

Introducing custom functions for ONLYOFFICE macros

以下是在宏代码中使用此函数的方法:

Introducing custom functions for ONLYOFFICE macros

最终的结果是:

Introducing custom functions for ONLYOFFICE macros

路径:电子表格编辑器 > 插件选项卡 > 宏 > 自定义函数

更多示例

让我们一起来看看更多自定义函数的示例:

  • Geometric mean几何平均– 几何平均数可度量集中趋势,对于涉及乘法或跨越几个数量级的数据集非常有用。它是n个变量值连乘积的n次方根。

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

让我们用 JavaScript 为几何平均数实现一个自定义函数。下面使用 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);
})();

如上,我们使用 Api.AddCustomFunction 方法添加了 gm 函数,并使其在我们的宏范围内可执行。

下面在宏代码中调用它:

(function()
{
var oWorksheet = Api.GetActiveSheet();
oWorksheet.GetRange("A1").SetValue("=GM(16, 36)");
})();
  • Harmonic mean调和平均数)-  调和平均数可度量集中趋势,对于涉及比率或比率的数据集非常有用。适用于数据值是相对于某些单位定义的,例如速度(每次距离)或密度(单位体积的质量)
(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);
})();

以及宏的植入:

(function()
{
var oWorksheet = Api.GetActiveSheet();
oWorksheet.GetRange("A1").SetValue("=HM(16, 36)");
})();
  • Root mean square均方– 均方根值(RMS) 可统计度量变化量大小。在值可以是正数或负数的情况下,并且您希望在不考虑符号的情况下测量整体大小,它会很实用。

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

为了创建这个自定义函数,我们将再次使用 Math.sqrt 方法,但使用不同的参数:

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

我们在宏代码中调用该函数:

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

下面,让我们看看这些自定义函数的实际运行效果!

希望这个宏帮助到您,自动执行任务和提高工作效率。

ONLYOFFICE 希望您能通过我们的创新工具和功能,让工作更轻松便利。如果您有任何问题或建议,请随时与我们联系。期待您的意见并讨论和合作。

创建免费的 ONLYOFFICE 账户

在线查看并协作编辑文本文档、电子表格、幻灯片、表单和 PDF 文件。