宏是一种小型脚本,可用于帮助您轻松应对日常工作并处理不同类型的文档。ONLYOFFICE 宏中使用了 JavaScript 语法与 ONLYOFFICE 文档生成器 API 脚本标注。
ONLYOFFICE 选择在宏中使用 JavaScript 的原因有多个:
- 跨平台,
- 便于使用,
- 安全,因为宏没有访问系统的权限。其只是运行于编辑器窗口中的 JS 代码。
请注意,从版本 7.1 开始,宏对于 window 与 document 对象以及 alert 函数的访问权限就受到了限制,因为我们在宏脚本中应用了“严格模式”。别忘记在使用变量前进行声明,这样宏才能正常工作。
您可在这里找到可立即使用的宏,也可自行进行创建。
编写您自己的宏
现在相信您已经了解了宏的工作方式,接下来可以自己尝试编写一个宏。假设我们手头有一张表格,并且需要使其隔行使用不同的背景色(即:奇数行为绿色,偶数行为红色)。表格中共有 200 行、A 至 S 列,如果手动操作的话会花费很多时间。所以,此时使用宏将是最佳的解决方案。
1、打开 ONLYOFFICE 编辑器并新建电子表格。
2、然后打开插件标签页并选择宏。此时将打开宏窗口。
3、点击新建。此时将出现基本函数封装工具,您可在其中输入必要的代码:
(function()
{
// ... your code goes here ...
})();
4、然后我们来看看 ONLYOFFICE 文档生成器的 API 文档以了解为了完成这项工作我们需要做些什么:
- 首先,使用 GetActiveSheet 方法获取当前工作表:
var oWorksheet = Api.GetActiveSheet();
- 然后创建循环,从首行遍历至末行:
for (var i = 1; i < 200; i += 2) {
}
- 设置 2 个变量,分别代表奇数行和偶数行:
var rowOdd = i, rowEven = i + 1;
- 现在我们将可对奇数行和偶数行进行访问,并且为其设置合适的样色。使用 CreateColorFromRGB 方法设置颜色。使用 GetRange 方法来获取行内的单元格,然后为奇数行设置颜色:
oWorksheet.GetRange("A" + rowOdd + ":S" + rowOdd).SetFillColor(Api.CreateColorFromRGB(118, 190, 39));
对于偶数行也可采用相同的操作,只需要颜色不同即可:
oWorksheet.GetRange("A" + rowEven + ":S" + rowEven).SetFillColor(Api.CreateColorFromRGB(186, 56, 46));
下面就让我们来看看完整的脚本代码:
(function()
{
var oWorksheet = Api.GetActiveSheet();
for (var i = 1; i < 200; i += 2) {
var rowOdd = i, rowEven = i + 1;
oWorksheet.GetRange("A" + rowOdd + ":S" + rowOdd).SetFillColor(Api.CreateColorFromRGB(118, 190, 39));
oWorksheet.GetRange("A" + rowEven + ":S" + rowEven).SetFillColor(Api.CreateColorFromRGB(186, 56, 46));
}
})();
将上方的代码粘贴至宏窗口中,然后点击运行。这样用不到 1 秒钟的时间我们就实现了 1-200 行内的交替着色。
分配宏
在电子表格编辑器中,您可为图形对象分配宏:
- 右键点击图形对象。
- 点击分配宏。
- 在弹出的窗口中选择宏。您可在相应的字段中输入宏名称。
- 点击 OK 按钮。
运行宏时,只需点击图形对象即可执行脚本。