Java 如何在Excel工作表中仅锁定单元格内容

Java 如何在Excel工作表中仅锁定单元格内容,java,excel,locking,apache-poi,cell,Java,Excel,Locking,Apache Poi,Cell,我正在使用JavaPOI库将一些数据导出到Excel。此数据中的某些单元格必须是只读的。我通过以下方式实现: CellStyle lockedCell = workbook.createCellStyle(); lockedCell.setLocked(true); cell.setCellStyle(lockedCell); 之后: workbook.getSheetAt(workbook.getActiveSheetIndex()).protectSheet(""); 它工作得很好,但有

我正在使用JavaPOI库将一些数据导出到Excel。此数据中的某些单元格必须是只读的。我通过以下方式实现:

CellStyle lockedCell = workbook.createCellStyle();
lockedCell.setLocked(true);
cell.setCellStyle(lockedCell);
之后:

workbook.getSheetAt(workbook.getActiveSheetIndex()).protectSheet("");
它工作得很好,但有一个问题-我无法修改包含锁定单元格的列的宽度


是否可以只锁定单元格的内容,以便修改列宽?

我认为不可能只允许用户修改锁定单元格的宽度

相反,您可以在填充数据后调用autoSizeColumncolNumber;在工作表上为填充的每个列显示

int colMaxLength = workbook.getActiveSheetIndex().getRow(0).getLastCellNum();
HSSFSheet activeSheet = workbook.getSheetAt(workbook.getActiveSheetIndex());
for(int i = 0 ; i < colMaxLength ; i++){
   activeSheet.autoSizeColumn(i);
}