ONLYOFFICE 宏的自定义函数:简介与示例
2024年07月11日作者: Alina
我们很高兴介绍在 ONLYOFFICE 文档8.1中引入的自定义函数。这项新功能将显著提升您在 ONLYOFFICE 电子表格编辑器中使用宏的体验。
关于自定义函数
这项功能支持插入用于计算各种参数和公式的自定义函数。有了它,您可以添加特定函数来执行特定计算,然后可以在宏代码中使用这些函数。
下面是一个自定义函数的示例,该函数根据特定条件计算两个数字的总和:
以下是在宏代码中使用此函数的方法:
最终的结果是:
路径:电子表格编辑器 > 插件选项卡 > 宏 > 自定义函数
更多示例
让我们一起来看看更多自定义函数的示例:
- Geometric mean(几何平均数)– 几何平均数可度量集中趋势,对于涉及乘法或跨越几个数量级的数据集非常有用。它是n个变量值连乘积的n次方根。
GM=(∏i=1nxi)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=1nxi2
为了创建这个自定义函数,我们将再次使用 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 希望您能通过我们的创新工具和功能,让工作更轻松便利。如果您有任何问题或建议,请随时与我们联系。期待您的意见并讨论和合作。