2014-04-11 40 views
0

當我瀏覽apache poi文檔時,他們說你可以在util包中使用PanelInformation對象獲取凍結或拆分窗格的信息。爲此,我需要HSSFSheet類的對象。我能夠獲得HSSFSHeet對象,但是當我嘗試使用getPanelInformation方法從它獲取PanelInformation時。它返回null。如何在使用apache poi閱讀時在excel中獲取凍結或拆分列的信息?

HSSFWorkbook workbook = new HSSFWorkbook(file); 
HSSFSheet sheet = workbook.getSheetAt(sheetNumber); 
workbook.setActiveSheet(sheetNumber); 
System.out.println(sheet.getPaneInformation()); 
+0

我已經編輯我的問題進一步解釋。請幫忙。 – yogesh

回答

1

在這裏看到的文檔:

https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Sheet.html

你正在尋找,我相信該方法是方法getPaneInformation(),它會告訴你,如果您正在尋找的窗格一個凍結或分割窗格。

+0

我試過,但sheet.getPanelInformation()返回null。 – yogesh

+0

再次根據文檔,該方法: '如果未配置窗格或窗格信息,則返回null。 – Atocil

+0

對不起,問題出在我的代碼中。現在我可以檢索窗格信息並且它不爲null。但是,我怎樣才能得到哪些列或行凍結?這是我的最終要求。我搜索了很多方法,但沒有點擊。 – yogesh

1

返回nullthe getPaneInformation method正常行爲。

返回:

空,如果沒有配置窗格或窗格中的信息。

這表示無法爲您的Sheet設置拆分窗格和凍結窗格。如果您確實在您正在閱讀的工作簿中創建了拆分窗格或凍結窗格,或者使用createSplitPanecreateFreezePane以編程方式創建了拆分窗格或凍結窗格,則getPaneInformation將返回非對象。

+0

感謝您的幫助。問題出在我的代碼中。現在我可以檢索窗格信息並且它不爲null。但是,我怎樣才能得到哪些列或行凍結?這是我的最終要求。我搜索了很多方法,但沒有點擊。 – yogesh

0

這個問題是很老,所以我把這個信息共享知識的緣故。

正如前面寫的,你可以找出是否某些行與凍結:

然後,你可以得到非凍結的行與第一個索引:

row.getSheet().getPaneInformation().getHorizontalSplitTopRow(); 

根據到Javadoc:

對於水平分割,返回BOTTOM窗格中的首行。

在垂直分割的情況下,就必須使用:

row.getSheet().getVerticalSplitLeftColumn(); 
相關問題