如何在默认情况下解锁工作表中的所有单元格?
此代码段会创建一个已锁定所有单元格的工作表
SXSSFWorkbook wb = new SXSSFWorkbook();
Sheet sheet = wb.createSheet("Results");
Row row = sheet.createRow(rowCounter);
Cell cell = row.createCell(counter);
cell.setCellValue("test");
尝试打开excel文件时,此代码段会导致某些损坏的数据
SXSSFWorkbook wb = new SXSSFWorkbook();
Sheet sheet = wb.createSheet("Results");
Row row = sheet.createRow(rowCounter);
Cell cell = row.createCell(counter);
CellStyle cellStyle = wb.createCellStyle();
cellStyle.setLocked(false);
cell.setCellStyle(cellStyle);
cell.setCellValue("test");
此代码段不会导致任何问题,但它也可以解锁单元格 . 我可以修改所有单元格,但如果单击“格式”,则会突出显示“锁定单元格”链接 .
SXSSFWorkbook wb = new SXSSFWorkbook();
Sheet sheet = wb.createSheet("Results");
Row row = sheet.createRow(rowCounter);
Cell cell = row.createCell(counter);
cell.setCellValue("test");
cell.getCellStyle().setLocked(false);
1 回答
您的第一个代码段 does not 使用POI 3.9生成包含锁定单元格的文档 .
正如预期的那样,单元格可在生成的工作簿中进行编辑 .
SXSSF是流式POI API . 它针对将大量数据写入基于XML的电子表格进行了优化(普通的XSSF api将XML文档保存在内存中,并且在构建大型文档时可能会占用大量内存) . 如果您不需要输出大型基于XML的文档,我建议只使用XSSF api,因为SXSSF有几个限制和陷阱,并没有详细记录 .
也可以看看:
SXSSF Documentation
POI Quick Start