2009-06-18 151 views
6

我目前正在使用包含數據透視表的模板excel文件的Java應用程序。使用Apache POI刷新數據透視表

模板文件還有一個數據表,用於種植數據透視表。該數據表通過Apache POI API動態加載到Java應用程序中。

當我打開excel文件時,我必須手動刷新數據透視表才能正確加載數據。

是否有任何方法刷新POI API的數據透視表,所以我不必手動執行它?

+0

我有一個要求,我很好奇你怎麼取得的數據表基礎數據透視表。我有一個模板excel表,我用apache poi填充數據。不過,我有基於我的數據透視表這個填充數據的問題。有任何想法嗎 ?? – Ash 2014-06-03 23:11:55

+0

這裏有什麼幫助? – Ash 2014-06-04 18:43:11

+0

我也有問題,當我在源表中填寫數據,然後將文件寫入磁盤時,生成文件中的數據透視表並不完整。我正在爲此使用JXL。任何幫助非常感謝,因爲我卡住了。 – 2018-01-24 07:04:32

回答

1

對此的基本答案是否定的。 POI是一種文檔格式的讀寫器。更新數據透視表是一個Excel引擎問題。當然,另一個應用程序可以嘗試在這裏複製Excel引擎的行爲,但這真的會變得很難看。我建議使用Joel's通過web服務訪問excel COM對象以解決此類問題。

4

這是可能的。 在PivotCacheDefinition中,有一個屬性refreshOnLoad可以設置爲true。工作簿打開後,緩存將刷新。 More information here

在POI中,可以通過在CTPivotCacheDefinition上調用方法setRefreshOnLoad(boolean bool)(將布爾作爲參數)來完成。

編輯: Apache POI現在提供了創建數據透視表的可能性,並且數據透視表在加載時被刷新爲默認值。 Class XSSFPivotTable

+0

調用哪個對象的方法?我的意思是`setRefreshOnLoad(布爾布爾)`。 – 2014-09-08 18:34:49

5

您可以簡單地激活一個選項,每次打開文件時都會刷新數據透視表。

Microsoft documentation說:

透視選項對話框中的數據選項卡上,當打開該文件複選框選擇刷新數據。

0

這可能會實現:

XSSFPivotTable pivotTable = pivotSheet.getPivotTables().get(0);  
pivotTable.getPivotCacheDefinition().getCTPivotCacheDefinition().setRefreshOnLoad(true); 
相關問題