本文共 2010 字,大约阅读时间需要 6 分钟。
这里所说的解密是指数解密文件密码,而非保护工作表或工作博的密码,代码如下:
import java.io.FileInputStream;import org.apache.poi.hssf.record.crypto.Biff8EncryptionKey;
import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem;/**
* * <p>类描述:使用poi解密excel </p> * <p>创建人:wanghonggang </p> * <p>创建时间:2019年8月13日 下午8:59:35 </p> * 所需引用jar包:poi和poi-ooxml */ public class TestPoi {/**
* * <p>方法描述:测试 TODO</p> * <p>创建人: wanghonggang </p> * <p>创建时间: 2019年8月13日 下午9:00:05 </p> * <p>修改记录:</p> * @param args * void */ public static void main(String[] args) { try{ POIFSFileSystem pfs = new POIFSFileSystem(new FileInputStream("E:\\test\\2.xls")); //解密,这个密码不是指保护工作表和工作博密码,而是打开文件密码 Biff8EncryptionKey.setCurrentUserPassword("123"); HSSFWorkbook wb = new HSSFWorkbook(pfs); //读取测试 HSSFSheet sheet = wb.getSheetAt(0); HSSFRow row = sheet.getRow(0); HSSFCell cell = row.getCell(0); System.out.println(cell.getStringCellValue()); wb.close(); }catch(Exception e){ e.printStackTrace(); }finally { } } }
.xlsx文件解密方法如下:
import java.io.File;import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory;/**
* * <p>类描述:使用poi解密excel .xlsx </p> * <p>创建人:wanghonggang </p> * <p>创建时间:2019年8月13日 下午8:59:35 </p> * 所需引用jar包:poi和poi-ooxml */ public class TestPoi4 {/**
* * <p>方法描述:测试 TODO</p> * <p>创建人: wanghonggang </p> * <p>创建时间: 2019年8月13日 下午9:00:05 </p> * <p>修改记录:</p> * @param args * void */ public static void main(String[] args) { try{ Workbook wb = WorkbookFactory.create(new File("E:\\test\\V2.1.xlsx"), "3"); //读取测试 Sheet sheet = wb.getSheetAt(0); Row row = sheet.getRow(0); Cell cell = row.getCell(0); System.out.println(cell.getStringCellValue()); wb.close(); }catch(Exception e){ e.printStackTrace(); }finally { } } }转载地址:http://yhivi.baihongyu.com/