我正在尝试在Excel 1.4需求集中使用 Excel.Setting 和 Excel.SettingCollection 对象。 (不是来自共享Office.js API的旧设置对象。)我无法获取要注册的 Excel.SettingCollection.onSettingsChanged 事件的处理程序。下面是我的代码(TypeScript)。我运行createSetting
方法,我已经确认我的设置已被添加。然后我运行changeSetting
方法。没有错误,但我的处理程序永远不会运行。任何人都可以看到什么是错的?添加第二个设置并删除设置也不会触发处理程序。 (其他Excel 1.4 API工作正常。)
async function createSetting() {
try {
await Excel.run(async (context) => {
const settings = context.workbook.settings;
settings.add("NeedsReview", true);
settings.onSettingsChanged.add(onChangedSetting);
await context.sync();
});
}
catch (error){
console.log(error.message);
}
}
处理程序:
async function onChangedSetting() {
try {
await Excel.run(async (context) => {
console.log("handler ran"); // DOES NOT RUN
await context.sync();
});
}
catch (error) {
console.log(error.message);
}
}
更改设置方法:
async function changeSetting() {
try {
await Excel.run(async (context) => {
const settings = context.workbook.settings;
// The settings.add function is also how you change a
// setting. There is no Excel.SettingCollection.setItem
// or Excel.Setting.set method.
settings.add("NeedsReview", false); // Change value
await context.sync();
});
}
catch (error) {
console.log(error.message);
}
}
答案 0 :(得分:1)
我了解到这是一个已知的错误。使用新的1.4 API更改设置时,不会触发onSettingsChanged
事件。修复时我会在这里更新。