2017-09-15 176 views
1

我們正在構建一個處理數據透視表的excel插件。我們想要從數據源刷新數據透視表。我們希望在Data選項卡上實現Refresh All Connections按鈕的相同功能。但是我們希望通過使用office.js的代碼來完成。office.js刷新excel工作簿中的數據透視表不起作用

我們嘗試了下面的代碼片段。它不起作用。

Excel.run(function (ctx) { 
    var pivotTables = ctx.workbook.worksheets.getActiveWorksheet().pivotTables;//.load("items"); 
    pivotTables.refreshAll(); 
    return ctx.sync().then(function() { 
     //var table = pivotTables.items[0]; 
     //table.refresh(); 
     //pivotTables.refreshAll(); 
    }).then(ctx.sync); 
}); 

任何幫助,將不勝感激。

謝謝。

回答

1

你的代碼沒有錯,但是你對refreshAll在這裏所做的預期有些偏離。此方法將刷新數據透視表以反映對支持數據的任何更改。這與拉取數據本身的新快照不是一回事。

使用此方法的一個示例是,如果您的加載項對數據矩陣進行了多處更改,則一旦完成,您將執行refreshAll()以使您的數據更改反映在數據透視表中。

目前無法使用office.js觸發數據連接的刷新。

+0

謝謝@ marc-lafleur-msft 我不清楚你的意思是支持數據。數據庫不是數據透視表的後備存儲嗎?你提到了「數據矩陣」。它指的是什麼? – amitavak

+0

您的數據透視表實際上已連接到工作簿中的數據(通常位於另一個工作表上)。這些數據可能是從數據庫中提取的,但它仍然只是數據的快照。刷新數據透視表可將您的數據透視表與工作表同步。刷新數據從數據庫中提取新快照。它刷新不支持通過JS的數據。 –

相關問題