网上给的参考代码
POIFSFileSystem fs = new POIFSFileSystem();
EncryptionInfo info = new EncryptionInfo(EncryptionMode.agile);
Encryptor enc = info.getEncryptor();
enc.confirmPassword("foobaa");
OPCPackage opc = OPCPackage.open(new File("D:/test/encrty.xlsx"), PackageAccess.READ_WRITE);
//OPCPackage opc = OPCPackage. .create(FileOutputStream);
OutputStream os = enc.getDataStream(fs);
opc.save(os);
opc.close();
FileOutputStream fos = new FileOutputStream("D:/test/encrty.xlsx");
fs.writeFilesystem(fos);
fos.close();
是不对的,正确写法:
POIFSFileSystem fs = new POIFSFileSystem();
EncryptionInfo info = new EncryptionInfo(EncryptionMode.agile);
Encryptor enc = info.getEncryptor();
enc.confirmPassword("admin");
try {
OutputStream os = enc.getDataStream(fs);
workbook.write(os);
workbook.close();
os.close();
//写入response流
fs.writeFilesystem(response.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
感谢 https://www.it610.com/article/1304556202281177088.htm