2017-04-26 122 views
0

我試圖通過Excel加載項刪除表中的某些行。我使用的代碼如下:Excel加載項行索引和值返回爲undefined

  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)。在此版本中,我將行項目的值和索引取爲未定義的。我該如何解決這個問題?

回答

1

我不確定構建編號會有什麼不同 - 但我會說TableRow API是一個非常脆弱的API(我們正在研究如何解決它)。實際上,當您執行getItemAt時,您將根據時間點索引創建參考,並且在添加或刪除新行時不調整此索引。

換句話說,對於刪除/插入,我會像對待它一樣使表格行集合無效,和/或使用Range對象代替。再一次請注意,該語句僅適用於TableRow/TableRowCollection對象 - 其他集合(如工作表集合)可以正確調整。