当我浏览apache poi文档时,他们说你可以使用util包中的PanelInformation对象获取冻结或拆分窗格的信息。为此,我需要HSSFSheet类的对象。我能够获得HSSFSHeet对象,但是当我尝试使用getPanelInformation方法从中获取PanelInformation时。它返回null。
HSSFWorkbook workbook = new HSSFWorkbook(file);
HSSFSheet sheet = workbook.getSheetAt(sheetNumber);
workbook.setActiveSheet(sheetNumber);
System.out.println(sheet.getPaneInformation());
答案 0 :(得分:1)
请参阅此处的文档:
<强> https://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Sheet.html 强>
您正在寻找的方法我相信是方法getPaneInformation(),它会告诉您当前正在查看的窗格是冻结还是拆分窗格。
答案 1 :(得分:1)
返回null
是the getPaneInformation
method的正常行为。
<强>返回:强>
如果没有配置窗格,则为null,或窗格信息。
这表示您的Sheet
既未设置拆分窗格也未设置冻结窗格。如果您确实在正在阅读的工作簿中创建了拆分窗格或冻结窗格,或者使用createSplitPane
或createFreezePane
以编程方式创建了分页窗格或冻结窗格,那么getPaneInformation
将返回非{{1} }} null
对象。
答案 2 :(得分:0)
这个问题已经很老了,所以为了分享知识,我把这些信息放了。
如前所述,您可以查看某些行是否被冻结:
row.getSheet().getPaneInformation().isFreezePane();
然后,您可以使用以下命令获取非冻结行的第一个索引:
row.getSheet().getPaneInformation().getHorizontalSplitTopRow();
根据Javadoc:
对于水平拆分,返回BOTTOM窗格中的顶行。
如果是垂直拆分,必须使用:
row.getSheet().getVerticalSplitLeftColumn();