[Excel JS加载项Api文档(Excel.WorkbookCreated)说:
The WorkbookCreated object is the top level object created by Application.CreateWorkbook.
A WorkbookCreated object is a special Workbook object.
[这使我相信一个WorkbookCreated对象用于访问新创建的工作簿,但是在创建新工作簿之后,没有关于访问WorkbookCreated对象的说明或示例。
我能够使用以下代码成功创建新工作簿:
// dbg() is a function to output text to the html window within the excel plugin.
function makeWorkbook() {
Excel.run(async context => {
Excel.createWorkbook().then(() => {
dbg('created');
});
return context.sync().then(() => {
dbg('sync completed');
});
});
}
运行此功能后,我只能访问新创建的工作簿,用户手动选择新工作簿,然后运行另一个命令。
是否可以在上面的makeWorkbook()函数中无需用户干预地访问新创建的工作簿?
[恐怕我们用于生成API参考文档的系统会将createWorkbook
方法放在很长页面的结尾处。 This link将使您跳到右边。从该示例中可以看出,您需要使用JavaScript FileReader对象。
更新:Create a workbook上有更多官方文档。关键句是“调用此方法时,新工作簿将立即打开并显示在Excel的新实例中。您的加载项将保持打开状态并与以前的工作簿一起运行。”
加载项基本上生活在一个沙盒JavaScript引擎中,该引擎嵌入在打开该加载项的Excel的特定实例中。加载项无法访问Excel的另一个实例,就像出于安全原因无法访问计算机上的任何其他进程一样。因此,无法从使用Excel.createWorkbook
创建它的外接程序中访问新创建的工作簿。