检查一个Excel工作表是否受保护并find密码(使用apache poi)
我需要执行以下操作:
用户下载Excel文件(这是一个模板)与一些列只读和其他可编辑;(只读列是通过保护整个表
//protect entire sheet sheet.protectSheet("password"); //create style for editable cells XSSFCellStyle editableStyle = workbook.createCellStyle(); editableStyle.setLocked(false); //for editable cells apply this style cell.setCellStyle(editableStyle);
用户修改模板文件,只填充可编辑的单元格
用户上传模板
在上传模板期间,我需要检查上传的文件是否是之前下载的文件,使用完全相同的“密码”进行保护。
我有可能获得密码,但它是编码,我不知道如何解码。
byte[] password = sheet.getCTWorksheet().getSheetProtection().getPassword();
你能帮我么?
如果你想检查文件是否有相同的密码,那么你可以使用validateSheetPassword
方法来检查它。
例:
if (sheet.validateSheetPassword("password")) print("It same password");
或者你可以在这里看到文档: https : //poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFSheet.html#validateSheetPassword(java.lang.String)