检查一个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)