java检查excel工作表是否受保护并查找密码(使用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();
你能帮帮我吗
# 1 楼答案
如果要检查文件是否具有相同的密码,则可以使用
validateSheetPassword
方法进行检查例如:
或者你可以在这里看到文档:https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFSheet.html#validateSheetPassword(java.lang.String)