Office Add-ins 长期以来一直支持自定义功能区按钮和菜单,称为插件命令。对于 Word、Excel、PowerPoint 和 Outlook,有两种方式:打开任务窗格的方式和调用 JavaScript 函数的方式。ExecuteFunction 命令即调用 JavaScript 函数的命令,我们在 JavaScript 文件中创建一个函数,然后在清单中通过名称标识该函数。JavaScript 文件由一个没有 UI 的 HTML 文件加载,通常称为 functionfile.html 或 commands.html。
为了提高 Office 外接程序的安全性,微软正在改变创建 ExecuteFunction 外接程序命令的方式。此更改不需要重新提交 Office 外接程序。
除了定义 JavaScript 函数之外,还需要通过调用
Office.actions.associate("name-of-function", function)
向 Office 注册该函数。
下面是一个示例
function writeText(event) {
// Implement your custom code here. The following code is a simple example.
Office.context.document.setSelectedDataAsync("ExecuteFunction works. Button ID=" + event.source.id,
function(asyncResult) {
var error = asyncResult.error;
if (asyncResult.status === Office.AsyncResultStatus.Failed) {
// Show error message.
} else {
// Show success message.
}
});
// Calling event.completed is required. event.completed lets the platform know that processing has completed.
event.completed();
}
// Register the function with the associate API
Office.actions.associate("writeText", writeText);
重要提醒
这些变更必须在 2022 年 10 月 30 日前完成。从那一天起,ExecuteFunction 类型的外接程序命令中没有以这种方式注册的函数将不能再运行。请尽快更新您的 Office 外接程序,以避免影响外接程序的功能。
要测试是否正确注册了功能,可以模拟 Office 在 2022 年 10 月 30 日的行为。向