Apache POI锁头行

有没有人熟悉一种方法来locking在使用Apache POI 3.7创build的电子表格中的一行? 通过locking我的意思是我希望列的标题行保持可见,当用户滚动通过行。 我创build的电子表格将有500行,如果列的名称始终可见,这将是有益的。

如果需要冻结工作表中任何地方的任何特定行,可以使用(在org.apache.poi.ss.usermodel.Sheet )(也可以在POI 3.7中使用)

 Sheet.createFreezePane(int colSplit, int rowSplit, int leftmostColumn, int topRow) 

在你的情况下,如果你只想冻结你的第一个x行然后int leftmostColumn, int topRow部分将被删除,你可以使用只是

 Sheet.createFreezePane(int colSplit, int rowSplit) 

例如

 sheet1.createFreezePane(0, 5); // this will freeze first five rows 

为此,您可以创build一个冻结窗格,如下所示:

 workbook.getSheetAt(workbook.getActiveSheetIndex()).createFreezePane(0, 1); 

这将冻结第一排。 还有另一种方法有更多的select,所以检查一下API 。

唯一要注意的是,如果您使用的是XSSF工作簿 – 在3.8-beta3版中提到了一个修正了使用XSSF电子表格的冻结窗格的行为的错误修正:

50884 – XSSF和HSSF冻结窗格现在performance相同(poi-developers)

我不知道这个细节,但是如果你在那条船上,这是值得研究的。