使用 office.js 合并 excel 个单元格

Merging excel cells using office.js

我正在尝试使用问题中所述的 Office.js API 合并一些单元格。我使用 visual studio 创建了一个新的 Web 添加项目。我保留了生成的项目,并添加了一个带有点击处理程序的按钮来合并单元格,这里是事件处理程序的代码。

function mergingCells() {
   Excel.run(function (ctx) {
   var sheet = ctx.workbook.worksheets.getActiveWorksheet();
   var range = sheet.getRange('A1:D2');
   range.merge(false);
   return ctx.sync().then(function () {
   showNotification('Merging done',
   'Merged range is ' + range.address);
   });
   }).catch(errorHandler);
}

我得到的错误是:

预期结果:

您的代码在未加载 .then 中的范围地址方面存在错误。但是如果我删除 range.address,或者在同步之前调用 range.load("address"),代码就可以工作。

有一件事我想知道:您使用的是哪个版本的 Office?如果您使用的是 Office 2016 RTM(不是基于订阅的 Office 365),合并方法可能不可用(它只是 ExcelApi 1.2 的一部分,而不是 RTM 附带的 ExcelApi 1.1)。

您可以在 IntelliSense 中查看 API 设置特定的 API 属于什么:

有关 Office version/flavors 的更多信息,请参阅 https://dev.office.com/docs/add-ins/develop/office-versions

有关 Office JS 版本控制和要求集的详细信息,请参阅 https://dev.office.com/docs/add-ins/develop/office-js-versioning

不幸的是,Office 2016 的 RTM 版本没有区分 API 不可用和其他一些错误;所以他们都以 InvalidArgument 的形式出现(但此后的版本不是)。