编写宏
现在您已经了解了宏的工作原理,可以试着编写您自己的宏。假如有一个表格,需要对表格的奇数行和偶数行进行着色(将奇数行设为绿色,偶数行设为红色),且该表格包含 200 行,列的范围为 A 到 S,如果手动完成这一任务将非常耗时。因此,使用宏将是很好的解决方案。
- 打开 ONLYOFFICE 编辑器并创建一个新的电子表格。
- 打开视图选项卡并选择宏。宏窗口将弹出,并出现一个基础的函数包装器,可以在其中编写所需代码:
(function () {
// ... your code goes here ...
})()
-
让我们参考 Office API 文档完成这一任务:
-
首先,使用 GetActiveSheet 方法获取当前工作表:
let worksheet = Api.GetActiveSheet();
-
然后创建一个从第一行遍历到最后一行的循环:
for (let i = 1; i < 200; i += 2) {
// TODO: Implement functionality here
} -
定义两个变量:一个用于奇数行,另一个用于偶数行:
let rowOdd = i;
let rowEven = i + 1; -
现在可以访问奇数行和偶数行了,接下来就让我们为每行设置颜色。可以使用 CreateColorFromRGB 方法设置所需颜色。使用 GetRange 方法获取对应行的单元格区域,为奇数行设置颜色:
worksheet.GetRange(`A${rowOdd}:S${rowOdd}`).SetFillColor(Api.CreateColorFromRGB(138, 181, 155));
偶数行除了设置的颜色不同之外操作完全相同:
worksheet.GetRange(`A${rowEven}:S${rowEven}`).SetFillColor(Api.CreateColorFromRGB(216, 227, 220));
-
现在我们将其整合成完整的脚本代码:
(function()
{
let worksheet = Api.GetActiveSheet();
for (let i = 1; i < 200; i += 2) {
let rowOdd = i, rowEven = i + 1;
worksheet.GetRange("A" + rowOdd + ":S" + rowOdd).SetFillColor(Api.CreateColorFromRGB(138, 181, 155));
worksheet.GetRange("A" + rowEven + ":S" + rowEven).SetFillColor(Api.CreateColorFromRGB(216, 227, 220));
}
})();
将上述代码粘贴到宏窗口中并点击图标。 第 1 到第 200 行将会在不到一秒的时间内被交替着色。
订阅事件
要订阅指定事件并在事件触发时调用回调函数,请使用 attachEvent 方法。
例如,要在文档中点击超链接时订阅事件,可以使用以下代码:
Api.attachEvent("asc_onHyperlinkClick", () => {
console.log("HYPERLINK!!!");
})
当你点击文档中任意超链接时,asc_onHyperlinkClick 事件将被触发,并在控制台中显示 "HYPERLINK!!!" 消息。
分配宏
在电子表格编辑器中,可以将宏分配给图形对象:
- 右键点击图形对象。
- 点击分配宏。
- 在弹出的窗口中选择一个宏,或者在相应区域输入宏名称。
- 点击确定按钮。
要运行宏,只需点击该图形对象,即可执行对应脚本。