Excel Online加载项 – 使用函数添加行作为第一列的值将创build一个总行

有一个奇怪的问题与Excel Online JS Api。 我正在创build一个新工作表并添加一个包含来自API调用的数据的表。 有一个特定的情况,表中的第一列有一个超链接函数( '=HYPERLINK("somelink", "Go to Wherever")' ),并且在它被添加到table.rows之后,其中一行是被创build为总行。

它始终select同一行作为同一组数据的总行,但会在数据组之间select不同的行。 所以,并不总是使用相同的索引。

这里是我如何添加行的片段。 这非常简单:

 .then(function(){ var dataTable = ctx.workbook.tables.add(topLeftCell.address + ':' + topRightCell.address.split('!')[1], true); var headers = data[0]; var headerRange = dataTable.getHeaderRowRange(); headerRange.values = [headers]; for (i = 1; i < data.length; i++) { if (!data[i] || data[i].length !== data[i - 1].length) { break; } dataTable.rows.add(-1, [data[i]]); } dataTable.getRange().format.autofitColumns(); return util.ctxSync(ctx); }) .then(function(){ worksheet.activate(); return util.ctxSync(ctx); }) 

工作表和表格创build得很好,但是将任何公式作为行中的第一个值将导致创build一行作为表的总行而不是普通行。 它可以用dataTable.getTotalRowRange() ,但不在dataTable.rows 。 真奇怪。

我认为这是一个Excel的错误,我可以通过添加一个虚拟列与任何值不是一个公式作为第一列,然后删除它在autofitColumns()之前autofitColumns()它。

有人会有更好的解决办法吗? 任何洞察力是赞赏。