有没有人熟悉使用Apache POI 3.7创建的电子表格中锁定行的方法?锁定的意思是当用户在浏览行时,要求列的标题行始终可见。我创建的电子表格将有500行,如果列名始终可见将会很有益。
有没有人熟悉使用Apache POI 3.7创建的电子表格中锁定行的方法?锁定的意思是当用户在浏览行时,要求列的标题行始终可见。我创建的电子表格将有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
为此,您可以按以下步骤创建冻结窗格:
workbook.getSheetAt(workbook.getActiveSheetIndex()).createFreezePane(0, 1);
这将使第一行固定在原位。另有一种方法具有更多选项,因此请查看API。
需要注意的是,如果您正在使用XSSF工作簿,则版本3.8-beta3中修复了使用XSSF电子表格冻结窗格的行为的错误修复:
50884 - XSSF和HSSF现在具有相同的冻结窗格行为(poi-developers)
我不知道详情,但如果您使用的是该工具,请调查一下。
sheet.groupRow(0, 49);
sheet.createFreezePane(0, 50);
然而,有一个小问题。如果工作表被保护,MS Excel 将不允许您展开/折叠组。为此,您需要编写宏。