HSSFWorkbook 中的结构锁可能吗?
Structure lock in HSSFWorkbook possible?
在 POI XSSFWorkbook 中,方法 lockStructure 和 lockWindows 存在 Excel 工作簿可以被保护。 (功能在 excel 菜单下的“审阅->保护工作簿...”)
这些方法的功能类似于Excel中的Workbook.protect方法:
https://docs.microsoft.com/en-us/office/vba/api/excel.workbook.protect
有没有办法在 HSSFWorkbook 中启用此保护?
我已经尝试过 writeProtectWorkbook 中的方法 HSSFWorkbook,但它与 XSSFWorkbook[=] 中的方法不同32=]。 writeProtectWorkbook方法设置一个打开密码。
可能我必须修改第 200 页第 5.82 节中描述的“工作表保护块”:http://www.openoffice.org/sc/excelfileformat.pdf
有谁知道我怎样才能用 POI 得到这个街区?
我使用 poi:5.0.0.
我自己了解了如何启用工作簿保护。
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"));
}
}
在 POI XSSFWorkbook 中,方法 lockStructure 和 lockWindows 存在 Excel 工作簿可以被保护。 (功能在 excel 菜单下的“审阅->保护工作簿...”)
这些方法的功能类似于Excel中的Workbook.protect方法:
https://docs.microsoft.com/en-us/office/vba/api/excel.workbook.protect
有没有办法在 HSSFWorkbook 中启用此保护?
我已经尝试过 writeProtectWorkbook 中的方法 HSSFWorkbook,但它与 XSSFWorkbook[=] 中的方法不同32=]。 writeProtectWorkbook方法设置一个打开密码。
可能我必须修改第 200 页第 5.82 节中描述的“工作表保护块”:http://www.openoffice.org/sc/excelfileformat.pdf
有谁知道我怎样才能用 POI 得到这个街区?
我使用 poi:5.0.0.
我自己了解了如何启用工作簿保护。 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"));
}
}