我想用apache poi复制一个Excel工作簿 . 必须保护副本,但用户应该能够调整列的大小 . 我准备了一个模板,并在模板的第一张纸上选择了“列格式” . 当我使用以下代码段时
InputStream is = new FileInputStream(
new File(DIR, "template.xlsx"));
XSSFWorkbook wb = (XSSFWorkbook) WorkbookFactory.create(is);
XSSFSheet s = wb.getSheetAt(0);
s.protectSheet("");
FileOutputStream os = new FileOutputStream(new File(DIR, "test.xlsx"));
wb.write(os);
os.close();
我得到一个损坏的Excel表格 . 我使用apache poi 3.8和Excel 2007 .
是否有解决方法来保护工作表但允许调整列的大小?
任何帮助将不胜感激
斯蒂芬
1 回答
我知道这是一个老帖子,但我刚刚解决了这个问题 . 您可以使用以下代码: ``
//just initialize these XSSFWorkbook xwb; XSSFSheet xsheet;
xsheet.protectSheet("1234"); xsheet.getCTWorksheet().getSheetProtection().setFormatColumns(false); xsheet.enableLocking(); xwb.lockStructure();
希望这有助于未来的人! :d