使用Apache POI在Excel中锁定单列

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

我正在使用以下方法,但这似乎不起作用。

创建两个CellStyle,一个带有setLocked(true),另一个带有setLocked(false)。

然后将锁定样式应用于需要锁定的列中的所有单元格,并将解锁样式应用于所有其他单元格。

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

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

它们都不是可编辑的。

如何达到上述要求?

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

回答:

如果您做相反的工作。保护整个工作表,并呼吁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();

以上是 使用Apache POI在Excel中锁定单列 的全部内容, 来源链接: utcz.com/qa/407821.html

回到顶部