Bootstrap

如何为 ONLYOFFICE 文档(Docs)创建宏

宏是一种小型脚本,可用于帮助您轻松应对日常工作并处理不同类型的文档。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 文档以了解为了完成这项工作我们需要做些什么:

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 行内的交替着色。

分配宏

在电子表格编辑器中,您可为图形对象分配宏:

  1. 右键点击图形对象。
  2. 点击分配宏
  3. 在弹出的窗口中选择宏。您可在相应的字段中输入宏名称。
  4. 点击 OK 按钮。

运行宏时,只需点击图形对象即可执行脚本。

;