Apache POI:默认情况下,在受保护的工作表上创建未受保护的单元格

时间:2013-02-26 07:59:48

标签: java apache-poi

当我使用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);

3 个答案:

答案 0 :(得分:0)

创建的单元格无法解锁;锁定是默认值。但是,通过创建锁定设置为false的CellStyle,您可以走上正轨。确保在要解锁的任何和所有新CellStyle对象上设置锁定为false。此外,Excel对可以在Workbook中创建的单元格样式数量有限制,因此请对您创建的每个CellStyle重复使用Cell个对象。

答案 1 :(得分:0)

可以在apache POI中更改默认单元格样式 如果您在单元格上完成getCellStyle(),则不会为您的单元格创建新的单元格样式,而是返回默认的单元格样式,您可以对其进行编辑, 根据{{​​3}}。

getCellStyle永远不会返回null,如果是新单元格,它将返回默认的单元格样式。

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

答案 2 :(得分:0)

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