我正在跟进为什么使用该 API 将行添加到表绑定很慢。请继续关注(尽管也意识到任何错误修复都不会是即时的......)
您可以尝试的一件事(我不确定它是否会更快)是使用此处概述的主机特定 Excel API:https://github.com/OfficeDev/office-js-docs/tree/master/excel
在您的情况下,代码将类似于:
Excel.run(function (ctx) {
var expenseTable = ctx.workbook.tables.getItem("ExpenseTable");
expenseTable.rows.add(null,[['Rent','$600','Housing']]);
expenseTable.rows.add(null, [["Movie Club", "$75", "Entertainment"]]);
expenseTable.rows.add(null, [["Food", "$450", "Food"]]);
expenseTable.rows.add(null, [["Car", "$150", "Transportation"]]);
expenseTable.rows.add(null, [["Tuition", "$800", "School costs"]]);
expenseTable.rows.add(null, [["Books", "$150", "School costs"]]);
expenseTable.rows.add(null, [["Gift", "$100", "Other"]]);
expenseTable.rows.add(null, [["Loan", "$250", "Loans/Payments"]]);
return ctx.sync();
})
.catch(function (error) {
console.log(JSON.stringify(error));
});
API 仅适用于 Excel Online 或 Excel 2016(不是 2013)。但是,如果这对您来说是个问题,您仍然可以在桌面上使用当前方法,并在线使用新方法(假设它更快)。做吧
if (Office.context.requirements.isSetSupported("ExcelApi")) {
Excel.run(...)
} else {
bindings.addRowsAsync(...)
}
希望这会有所帮助!
~ Michael Zlatkovsky,Office 可扩展性团队的开发人员,MSFT