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

时间:2015-11-04 13:56:28

标签: java excel locking apache-poi cell

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

workbook.getSheetAt(workbook.getActiveSheetIndex()).protectSheet("");

之后:

curl -XGET 'http://localhost:9200/books/fantasy/_search?from=0&size=10&q=%2A' -d '{
    "query":{
        "filtered":{
            "filter":{
                "exists":{
                    "field":"speacial.ean"
                }
            }
        }
    }
}'

它工作得很好,但有一个问题 - 我无法修改包含锁定单元格的列的宽度。

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

1 个答案:

答案 0 :(得分:0)

我认为不可能只对锁定的单元格进行用户宽度修改。

相反,您可以在填充数据后,在工作表上为每个填充的列调用autoSizeColumn(colNumber);

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