如何在使用apache poi阅读时在excel中获取冻结或拆分列的信息?
当我通过apache poi文档时,他们说你可以使用util包中的PanelInformation对象来获取冻结或拆分窗格的信息。 为此,我需要HSSFSheet类的对象。 我能够获得HSSFSHeet对象,但是当我试图从getPanelInformation方法获取PanelInformation。 它返回我空。
HSSFWorkbook workbook = new HSSFWorkbook(file); HSSFSheet sheet = workbook.getSheetAt(sheetNumber); workbook.setActiveSheet(sheetNumber); System.out.println(sheet.getPaneInformation());
请参阅这里的文档:
https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Sheet.html
你正在寻找的方法我相信是getPaneInformation()方法,它会告诉你,你当前正在查看的窗格是冻结还是拆分窗格。
返回null
是getPaneInformation
方法的正常行为。
返回:
如果没有configuration窗格,或者窗格信息为null。
这表明您的工作Sheet
没有设置拆分窗格和冻结窗格。 如果您确实在您正在阅读的工作簿中创build了拆分窗格或冻结窗格,或者使用createSplitPane
或createFreezePane
编程,则getPaneInformation
将返回非null
PaneInformation
对象。
这个问题是相当古老的,所以我把这些信息为了分享知识。
如前所述,您可以查看是否某些行被冻结:
row.getSheet().getPaneInformation().isFreezePane();
然后,你可以得到非冻结行的第一个索引:
row.getSheet().getPaneInformation().getHorizontalSplitTopRow();
根据Javadoc:
对于水平分割,返回BOTTOM窗格中的顶行。
在垂直分割的情况下,必须使用:
row.getSheet().getVerticalSplitLeftColumn();