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 对象——其他集合,如工作表集合,可正确调整。
我正在尝试通过 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 对象——其他集合,如工作表集合,可正确调整。