如何使用POIlockingExcel工作表中的数据,留下没有任何数据的单元格或解锁表单的其余部分

我试图lockingExcel工作表中的数据,以便不可能编辑已经写入到工作表的数据,但留下剩余的空白空间用于编辑/添加更多数据。

我已经尝试过整个工作表试图设置单元格样式,使用下面提供的代码,但它只是相关的代码,但它不起作用,这同意这个问题已经问

使用Apache POI在Excel中locking单个列

XSSFCellStyle lockCell = getFileWriter().getWorkbook().createCellStyle(); lockCell.setLocked(true); for(Row row : sheet){ for(Cell mycell : row){ mycell.setCellStyle(lockCell); } } 

相反:通过locking整个工作表并设置相关行的单元格样式解锁,我试过,但没有任何数据的单元格不解锁,所以它没有为我工作。 在任何情况下,人们应该释放多less单元,因为不知道要添加的未知数据量需要多less空间。

任何帮助或build议将不胜感激。

如果单元格之前没有显式创build,则该行的迭代器将不返回单元格。 要解锁一个单元格,它必须明确地设置为解锁的样式。 改变默认是不可能的,据我所知。 所以我看到的唯一方法是为每个行创build单元格直到某个列索引。

要解锁没有数据的单元格,为了保证表单的安全,必须使用setDefaultColumnStyle方法设置要解锁的列的默认样式。

在你的情况下,你必须做一些事情:

 CellStyle editableStyle = workbook.createCellStyle(); editableStyle.setLocked(false); for (int i = 0; i < numColumns; i++) { sheet.setDefaultColumnStyle(i, editableStyle); }