我试图锁定Excel工作表中的数据,以便无法编辑已写入工作表的数据,但可以将剩余的空白空间留给编辑/添加更多数据 .
我已经尝试通过整个工作表试图设置单元格样式,使用下面提供的代码,但它只是相关的代码,但它不起作用,这同意这个问题已经问过
Lock single column in Excel using Apache POI
XSSFCellStyle lockCell = getFileWriter().getWorkbook().createCellStyle();
lockCell.setLocked(true);
for(Row row : sheet){
for(Cell mycell : row){
mycell.setCellStyle(lockCell);
}
}
相反:通过锁定整个工作表并将相关行的单元格样式设置为解锁,我已经尝试了但是没有任何数据的单元格没有解锁,所以它对我没用 . 在任何情况下,应该解释单元格的距离和宽度,因为不知道需要多少空间来添加未知数量的数据 .
任何帮助或建议将不胜感激 .
2 回答
如果之前未显式创建单元格,则行的迭代器将不返回单元格 . 要解锁单元格,必须将其明确设置为未锁定的样式 . 据我所知,无法更改默认值 . 因此,我看到的唯一方法是为每一行创建单元格,直到某个列索引 .
要解锁没有数据的单元格,假设您的工作表受到保护,您必须使用
setDefaultColumnStyle
方法设置要解锁的列的默认样式 .在您的情况下,您必须执行以下操作: