我正在为Excel编写Office-js插件。
我在html页面中运行了一些代码:
Logger.Log(`about to call GetActiveSheetID`);
Excel.run((context) => {
const sheets: any = context.workbook.worksheets;
const activeSheet: any = sheets.getActiveWorksheet();
return context.sync().then(() => {
Logger.Log(`GetActiveSheetID returns ${activeSheet.id}`);
});
}).catch((e) => {
Logger.Log(e.message);
});
在旁边:记录器将记录写到本地存储,以便可以将其读回 其他地方,因为调试器控制台似乎无法正常工作
当我在对话框中托管这部分javascript / html页面时(使用office dialog API),我将获得以下日志条目:
2019-03-14T21:14:24.043Z about to call GetActiveSheetID
2019-03-14T21:14:24.059Z An internal error has occurred.
当我在任务窗格中运行完全相同的页面/代码时,我得到:
2019-03-14T21:14:47.162Z about to call GetActiveSheetID
2019-03-14T21:14:47.185Z GetActiveSheetID returns {00000000-0001-0000-0000-000000000000}
当驻留在办公室对话框中时,似乎Excel.run()不起作用?因此,该对话框不能用于修改excel电子表格数据。
答案 0 :(得分:1)
恐怕您只能在对话框中调用的Office.js API是isSetSupported
和messageParent
。如果需要其他Office.js功能,则需要将带有messageParent
的对话框中的信号传递到父页面,并从父页面调用所需的Office.js API。
有关更多信息,请参见Dialog API。