Apache POI锁定标题行

70 java apache-poi

有没有人熟悉在Apache POI 3.7创建的电子表格中锁定行的方法?通过锁定,我的意思是当用户滚动行时,我希望列的标题行保持可见.我创建的电子表格将有500行,如果列的名称始终可见,将会很有用.

San*_*ngh 113

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

Sheet.createFreezePane(int colSplit, int rowSplit, int leftmostColumn, int topRow)
Run Code Online (Sandbox Code Playgroud)

在您的情况下,如果您只想冻结前x行,那么该int leftmostColumn, int topRow部分将被删除,您可以使用

Sheet.createFreezePane(int colSplit, int rowSplit)
Run Code Online (Sandbox Code Playgroud)

例如

sheet1.createFreezePane(0, 5); // this will freeze first five rows
Run Code Online (Sandbox Code Playgroud)


ako*_*kis 14

为此,您可以按如下方式创建冻结窗格:

workbook.getSheetAt(workbook.getActiveSheetIndex()).createFreezePane(0, 1);
Run Code Online (Sandbox Code Playgroud)

这将冻结第一行.还有另一种方法有更多选项,所以请查看API.

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

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

我不知道这个细节,但如果你在那条船上,那就值得调查一下.