我正在尝试创建一个新的工作表,并将值放在办公室在线的js加载项的单元格中。 这是我的示例代码(基于API文档中的示例 - https://dev.office.com/reference/add-ins/excel/worksheetcollection):
return Excel.run(function (ctx) {
var worksheet;
return Promise.resolve('mySheetName')
.then(function (sheetName) {
dtSheetName = sheetName;
worksheet = ctx.workbook.worksheets.add(dtSheetName);
worksheet.load('name');
worksheet.activate();
console.log("Finished adding worksheet");
})
.then(ctx.sync) // Error in this ctx.sync
.then(function () {
aCell = worksheet.getCell(0, 0);
我也尝试过这方面的变种(例如,在添加工作表后尝试同步上下文)
return Excel.run(function (ctx) {
var worksheet;
return Promise.resolve('mySheetName')
.then(function (sheetName) {
dtSheetName = sheetName;
worksheet = ctx.workbook.worksheets.add(dtSheetName);
console.log("Finished adding worksheet");
})
.then(ctx.sync)
.then(function () {
worksheet = ctx.workbook.worksheets.getItem(dtSheetName);
worksheet.activate();
worksheet.load('name');
console.log("Finished activating sheet");
})
.then(ctx.sync) // Error in this ctx.sync
.then(function () {
stagingTableCell = worksheet.getCell(0, 0);
但在所有情况下,Excel在线只会在左下角挂起“工作”。如果我打开调试器控制台并捕获未捕获的异常,则ewa.js中会出现错误:
throw Error.argument("name", "No item exists with the name '" + n + "'.");
n = "mySheetName"
以前有人遇到过这个问题吗?有什么修复建议吗?一般来说,我们什么时候需要调用sync()?