在办公室插件中获取 office.js 中的 Sheet 名称

Getting Sheet name in office.js in office addins

我正在尝试从使用 VS 构建的 office 365 插件获取 SheetName。 以下是代码。

var ctx = new Excel.RequestContext();
        workbook = ctx.workbook;               
        var Sheet = workbook.worksheets.getActiveWorksheet();
        Sheet.load("name");
        var name;
        ctx.sync().then(function () {
            name = Sheet.name;
        });

但我无法进入 ctx.sync().then 函数。 请解释我是否遗漏了什么。

也可以使用上述示例在现有工作簿中加载 excel 文件。 通过加载一个文件,我的意思是说我从需要在当前工作簿上显示的服务收到一个 excel 文件。就像在 excel 客户端插件中一样,我们可以在应用程序

中加载一个 excel 文件

这里有一些建议:

  • 使用 Excel.run 而不是手动创建请求上下文。 (除其他外,这将有助于错误处理。)
  • 确保您也包括错误处理(如果没有正确的错误处理逻辑,事情可能会悄无声息地失败,而没有任何迹象表明某些事情正在失败)。
  • 务必在 context.sync()(即 return context.sync();)之前包含 return

这是在您的场景上下文中实现这些建议的代码片段:

function getActiveWorksheet() {
    Excel.run(function (context) {
        var sheet = context.workbook.worksheets.getActiveWorksheet();
        sheet.load("name");
        return context.sync()
            .then(function () {
                console.log("The active worksheet is " + sheet.name);
            });
    })
        .catch(function (error) {
            console.log(error.debugInfo);
        });
}

关于您的最后一个问题(“也可以使用上述示例在现有工作簿中加载 excel 文件。”)——我不是清楚你在这里问什么。您能否更新您的问题,提供有关您想要实现的目标的更多信息?