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

Excel Add-in Row Index and Values are returned as undefined

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

            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)。在此版本中,我将行项的值和索引设为未定义。我该如何解决这个问题?

我不确定内部版本号会有什么不同——但我会说 TableRow API 是一个 API 脆弱的(我们正在研究如何修理它)。本质上,当您执行 getItemAt 时,您是在创建基于 时间点 索引的引用,并且在添加新行时不会调整该索引或删除。

换句话说,对于 deletion/insertion,我会将其视为您需要使 table 行集合无效,and/or 将改用 Range 对象。再次注意,此声明仅适用于 TableRow/TableRowCollection 对象——其他集合,如工作表集合,可正确调整。