在POI XSSFWorkbook中,可以使用lockStructure和lockWindows方法来保护Excel工作簿。(在excel菜单中的“检查->保护工作簿.”下的函数)
这些方法的功能类似于Excel:https://learn.microsoft.com/en-us/office/vba/api/excel.workbook.protect中的https://learn.microsoft.com/en-us/office/vba/api/excel.workbook.protect方法。
是否有任何方法在HSSFWorkbook中启用此保护?
我已经尝试过来自HSSFWorkbook,的HSSFWorkbook,方法,但是它不像XSSFWorkbook.中的方法那样做方法writeProtectWorkbook设置一个打开的密码。
可能我必须修改“工作表保护块”,在第200页的第5.82节中对此进行了描述:http://www.openoffice.org/sc/excelfileformat.pdf
有谁知道我怎样才能用POI得到这个街区吗?
我使用poi:5.0.0。
发布于 2021-09-10 07:43:22
我发现自己如何启用工作簿保护。在InternalWorkbook中有一个记录列表。它们包含记录类型ProtectRecord,WindowProtectRecord和PasswordRecord.有了这些,您可以设置工作簿保护:
List<Record> records = ((HSSFWorkbook) wb).getInternalWorkbook().getRecords();
for (Record record : records) {
if (record instanceof ProtectRecord) {
((ProtectRecord) record).setProtect(true);
} else if (record instanceof WindowProtectRecord) {
((WindowProtectRecord) record).setProtect(true);
} else if (record instanceof PasswordRecord) {
((PasswordRecord) record).setPassword((short) CryptoFunctions.createXorVerifier1("password"));
}
}https://stackoverflow.com/questions/69120284
复制相似问题