如何使用Excel JavaScript加载项访问WorkbookCreated对象?

问题描述 投票:0回答:1

[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()函数中无需用户干预地访问新创建的工作簿?

excel office-js office-addins excel-addins
1个回答
0
投票

[恐怕我们用于生成API参考文档的系统会将createWorkbook方法放在很长页面的结尾处。 This link将使您跳到右边。从该示例中可以看出,您需要使用JavaScript FileReader对象。

更新:Create a workbook上有更多官方文档。关键句是“调用此方法时,新工作簿将立即打开并显示在Excel的新实例中。您的加载项将保持打开状态并与以前的工作簿一起运行。”

加载项基本上生活在一个沙盒JavaScript引擎中,该引擎嵌入在打开该加载项的Excel的特定实例中。加载项无法访问Excel的另一个实例,就像出于安全原因无法访问计算机上的任何其他进程一样。因此,无法从使用Excel.createWorkbook创建它的外接程序中访问新创建的工作簿。

© www.soinside.com 2019 - 2024. All rights reserved.