2012-02-09 59 views
4

Excel提供菜單DataOutlineSubtotal的小計選項。它自動創建子數據和摺疊數據的可能性。下圖展示了動作如何轉換工作表。實施Excel的小計功能

enter image description here

而這正是我需要通過POI做。我知道如何設置一個小計功能到一個單元格,所以我可以自己計算中間款項。但是,如何在左邊框上啓用摺疊?

我意識到有groupRow()方法,但這些嵌套組不能像他們應該的工作。如果我使用下面的代碼,我只能得到兩個組。一大(1-7)和(1-3)。組(5-7)缺失,更改通話順序不起作用。

sheet.groupRow(1, 7); 
sheet.groupRow(1, 3); 
sheet.groupRow(5, 7); 

回答

3

我用POI的一個很老優化版本,但是這是我做的:
我還需要多個嵌套組,所以我不得不對其中縮進級別儲存以及該行的模型(這是一棵樹,所以縮進是隱含的)。我通過訪問者遍歷模型來獲取組的開始和結束行號。隨後爲每個組調用HSSFSheet.groupRow。如果我沒有記錯,組呼的順序很重要。

+0

莫非你發佈了一些你的代碼?我仍然沒有得到這些嵌套組的工作。 – Kai 2012-02-17 10:03:13

+0

在這裏,你去:http://pastebin.com/iFkUFX3q這是從上下文之外抓住,但我希望它仍然可以理解。如果不是,我會粘貼更多。 Group和groupOH對於不同的結構也是一樣,所以其中一個應該足夠了。 – zeller 2012-02-17 10:10:28

+0

無論如何,如果你認爲這會有所幫助,我可以運行一代記錄所有分組的行號,然後張貼在表格的某個屏幕上。 – zeller 2012-02-17 10:25:11