使用Apache POI在Excel中locking单个列

我想创build一个Excel,其中只有一个特定的列被locking(只读),其余的是可编辑的,

我正在使用以下方法,但似乎并不奏效。

创build两个CellStyles,其中一个使用setLocked(true),另一个使用setLocked(false)。

然后为需要locking的列中的所有单元格应用locking样式,为所有其他单元格应用未locking样式。

使用sheet.protectSheet(“”)保护工作表。

但是当我在开放办公室打开创build的Excel时,我注意到所有的单元格都被locking了!

它们都不可编辑。

我怎样才能达到上述要求?

PS:我不能使用数据validation方法。

如果你做相反的工作。 保护整张表格,并为应该可编辑的单元setLocked(false)

 String file = "c:\\poitest.xlsx"; FileOutputStream outputStream = new FileOutputStream(file); Workbook wb = new XSSFWorkbook(); CellStyle unlockedCellStyle = wb.createCellStyle(); unlockedCellStyle.setLocked(false); Sheet sheet = wb.createSheet(); sheet.protectSheet("password"); Row row = sheet.createRow(0); Cell cell = row.createCell(0); cell.setCellValue("TEST"); cell.setCellStyle(unlockedCellStyle); wb.write(outputStream); outputStream.close();