Excel加载项行索引和值作为未定义返回

我试图通过Excel加载项删除表中的一些行。 我正在使用的代码如下:

var table = ctx.workbook.tables.getItem('TableName'); if (Office.context.requirements.isSetSupported('ExcelApi', 1.2) === true) { table.clearFilters(); } var tableRows = table.rows.load('items'); ctx.sync().then(function () { for (var i = (tableRows.count - 1); i >= 0; i -= 1) { var row = tableRows.getItemAt(tableRows.items[i].index); row.delete(); } }); 

这在Excel在线(包括Internet Explorer 11)中工作正常。此外,它还可以与版本1601(内部版本6741.2088)及更高版本一起使用。 但是,它不适用于版本1509(内部版本4266.1001)。 在这个版本中,我将行项目的值和索引取为undefined。 我该如何解决这个问题?

我不确定构build数字会有什么不同,但是我会说TableRow API是一个非常脆弱的API(我们正在研究如何解决这个问题)。 基本上,当你做一个getItemAt ,你正在创build一个基于时间索引的引用,并且在添加或删除新行时,这个索引不会被调整。

换句话说,对于删除/插入,我会把它看作是你需要使表行集合无效,和/或将使用Range对象。 再一次请注意,这个语句只适用于TableRow / TableRowCollection对象 – 其他集合(如工作表集合)可以正确调整。