1
我試圖使用Excel.Setting和Excel.SettingCollection對象在Excel中1.4的要求設定SettingsChanged事件處理程序。 (不是來自共享Office.js API的舊設置對象。)我無法獲取要註冊的Excel.SettingCollection.onSettingsChanged事件的處理程序。以下是我的代碼(TypeScript)。我運行了createSetting
方法,並且驗證了我的設置正在被添加。然後我運行changeSetting
方法。沒有錯誤,但我的處理程序從不運行。任何人都可以看到有什麼不對?添加第二個設置並刪除設置也不會觸發處理程序。 (其他Excel 1.4 API的正常工作。)如何註冊在Office web插件
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);
}
}
相關的GitHub問題:https://github.com/OfficeDev/office-js/issues/69。 –