0

当我使用 Apache POI 创建受保护的工作表时,默认情况下所有单元格都受到保护。我必须单独解锁每个单元格。是否可以在所有单元格默认不受保护的情况下保护工作表(这样我只保护我想要的单元格)。

(使用的代码)

/*for sheet protection*/
sheet.protected("password");
/*creating style to unlock cell */
CellStyle unlockedCellStyle = workbook.createCellStyle();
unlockedCellStyle.setLocked(false);

/*applying unlock style to cell */  
cell.setCellStyle(unlockedCellStyle);
4

3 回答 3

0

It is not possible to have created cells default to unlocked; locked is the default. But you are on the right track by creating a CellStyle with locked set to false. Make sure that you set locked to false on any and all of your new CellStyle objects that you want to be unlocked. Additionally, Excel has a limit on the number of cell styles that can be created in a Workbook, so re-use your CellStyle object(s) with each Cell you create.

于 2013-02-26T17:45:08.810 回答
0

可以更改 apache POI 中的默认单元格样式。
如果您在单元格上完成了操作,而不是为您的单元格创建新的单元格样式getCellStyle(),这将返回默认的单元格样式,并且您将能够
根据this对其进行编辑。

getCellStyle从不返回 null,如果是新单元格,则返回默认单元格样式。

所以基本上要编辑单元格的默认单元格样式,要么getCellStyle在新创建的单元格上执行,要么试试这个workbook.getCellStyleAt(0)。有关详细信息,
请参阅此内容。

于 2016-05-01T03:17:31.247 回答
0

您可以XSSFCellStyle defaultCellStyle = wb.getCellStyleAt(0);获取默认单元格样式,然后defaultCellStyle.setLocked(false);这会将您的工作簿的默认单元格样式更改为解锁。

于 2021-02-22T07:57:08.973 回答