Java 使用ApachePOI锁定Excel中的单个列
我想创建一个Excel,其中只有一个特定列被锁定(只读),其余列可编辑 我正在使用以下方法,但这似乎不起作用 创建两个单元格样式,一个为setLocked(true),另一个为setLocked(false) 然后对列中需要锁定的所有单元格应用锁定样式,对所有其他单元格应用解锁样式 使用纸张保护纸张。protectSheet(“”) 但当我在open office中打开创建的Excel时,我注意到所有单元格都已锁定 它们都不可编辑 我怎样才能达到上述要求Java 使用ApachePOI锁定Excel中的单个列,java,excel,apache-poi,Java,Excel,Apache Poi,我想创建一个Excel,其中只有一个特定列被锁定(只读),其余列可编辑 我正在使用以下方法,但这似乎不起作用 创建两个单元格样式,一个为setLocked(true),另一个为setLocked(false) 然后对列中需要锁定的所有单元格应用锁定样式,对所有其他单元格应用解锁样式 使用纸张保护纸张。protectSheet(“”) 但当我在open office中打开创建的Excel时,我注意到所有单元格都已锁定 它们都不可编辑 我怎样才能达到上述要求 注:我不能使用数据验证方法。如果你做相反
注:我不能使用数据验证方法。如果你做相反的事情,它会起作用。保护整个工作表,并对应可编辑的单元格调用
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();
更清楚地说,整个工作簿都被锁定,包括应该解锁的单元格。