像这样:Excel GUI->审阅->保护工作簿->保护工作簿的结构->输入密码。
我尝试过API HSSFWorkbook.writeProtectWorkbook(String password, String username),但没有按我的预期工作。在我的情况下,打开文件时输入密码是完全没有必要的,但只需要结构保护。
对于那些使用
SXSSFWorkbook
代替其他练习册的人,// assuming the class of this workbook is SXSSFWorkbook
SXSSFWorkbook wb = (SXSSFWorkbook) workbook;
// prevent from modifying the content
wb.getSheet("sheetName");
sheet.protectSheet("modify-passwd");
wb.setSheetVisibility(wb.getSheetIndex(sheet), SheetVisibility.HIDDEN);
// keep hiding until entering the password
XSSFWorkbook xssfWorkbook = wb.getXSSFWorkbook();
xssfWorkbook.lockStructure();
xssfWorkbook.setWorkbookPassword("hide-passwd", HashAlgorithm.sha512);
// Wow ,it works!
根据阿克塞尔·里希特的回答。非常感谢