Skip to content

Excel&Word文件加密

为保障导出数据的安全性, 在导出敏感数据时可以考虑导出带密码的 Excel 或者 Word 或者 Pdf 文件, 来保障数据的安全性.

Pom 坐标

xml
<dependency>  
    <groupId>org.apache.poi</groupId>  
    <artifactId>poi-ooxml</artifactId>  
   <version>5.2.3</version>  
</dependency>

Demo

Java
public static void main(String[] args)  throws Exception{  
    String file = "";  
    POIFSFileSystem fs = new POIFSFileSystem();  
    EncryptionInfo info = new EncryptionInfo(EncryptionMode.standard);  
    Encryptor enc = info.getEncryptor();  
    //设置密码  
    enc.confirmPassword("123456");  
  
    //加密文件  
    OPCPackage opc = OPCPackage.open(new File(file), PackageAccess.READ_WRITE);  
    OutputStream os = enc.getDataStream(fs);  
    opc.save(os);  
    opc.close();  
    // 这一步特别注意,导出之前一定要先关闭加密文件流,不然导出文件会损坏而无法打开  
    os.close();  
    // 把加密后的文件写回流  
    FileOutputStream fos = new FileOutputStream(file);  
    fs.writeFilesystem(fos);  
    fos.close();  
  
}

waitingresult.com