有没有人熟悉用Apache POI 3.7创建的电子表格中锁定行的方法?通过锁定,我的意思是希望列的标题行在用户滚动各行时保持可见。我创建的电子表格将有500行,如果列的名称始终可见,这将是有益的。
发布于 2013-07-30 12:54:29
如果您需要冻结工作表中任何特定的行,您可以使用(在org.apache.poi.ss.usermodel.Sheet
中)(POI3.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
发布于 2018-02-28 22:08:15
您不能冻结中间行,而不将其上方的行也冻结。
假设您有100行,标题行在第50行。您可能会认为只有第50行被锁定,这样当从第1行到第49行滚动时,所有内容都会向上滚动,当滚动到第50行时,第50行会滚动到顶部,当滚动到第51-100行时,第50行会停留在那里。
但是,有一种变通方法。您可以做的是,对行进行分组,然后冻结它们。
首先,从1到49对行进行分组,然后从1到50冻结窗格。现在,用户可以最小化该组,然后在顶部锁定表头的情况下使用该表。
sheet.groupRow(0, 49);
sheet.createFreezePane(0, 50);
不过,这里有一个小问题。如果工作表受到保护,MS Excel将不允许您展开/折叠组。为此,您需要编写一个宏。
https://stackoverflow.com/questions/17932575
复制相似问题