请问有什么开源的项目支持导出加密的 xls 文件吗?

试过 java 的 poi, easyexcel, c# 的 npoi, EPPlus, ExcelDataReader ,python 的 msoffcrypto-tool

c++ 的 openoffice, libreoffice ,go 的 excelize 都没有发现没有这个功能。

现在想写 xls 文件的加密,但是一直没有成功,所以想找一些资源来参照,官方文档 完全没有说加密,只说了解密。

最新回复 (12)
  • asdjgfr6月前
    引用2
    nodejs 倒是有个库,不知道满不满足你的需求
    https://github.com/exceljs/exceljs/blob/HEAD/README_zh.md
  • SWALLOWW6月前
    引用3
    换个思路,导出个加密的压缩包?
  • zurmokeeper楼主6月前
    引用5
    @asdjgfr 没有的,这个加解密都不支持的
  • zurmokeeper楼主6月前
    引用6
    @yesterdaysun 都看过了,不支持 xls 格式的加密
  • zurmokeeper楼主6月前
    引用7
    @SWALLOWW 还是想实现 xls 自己的加密,就像 WPS 保存 xls 格式的设密码一样,其实我已经实现了一部分,但是加密以后的文件和 WPS 加密出来还有少量字节数据的差异,不知道哪里不对,所以想找其他资料对比一下
  • yesterdaysun6月前
    引用8
  • wxyrrcj6月前
    引用10
    // 把工作薄输出到字节里面
    bout = new ByteArrayOutputStream();
    workbook.write(bout);
    bout.flush();
    workbookinput = new ByteArrayInputStream(bout.toByteArray());
    // 读取临时文件进行加密
    POIFSFileSystem fs = new POIFSFileSystem();
    EncryptionInfo info = new EncryptionInfo(fs, EncryptionMode.agile);
    Encryptor enc = info.getEncryptor();
    enc.confirmPassword("123456");//打开 excel 密码
    // 然后把字节输入到输入流,然后输入到 OPC 包里面
    opc = OPCPackage.open(workbookinput);
    os = enc.getDataStream(fs);
    opc.save(os);
    opc.close();
    // 返回给浏览器
    outstream = response.getOutputStream();
    response.reset();
    response.setHeader("Content-disposition",
    "attachment; filename=" + new String(title.getBytes(), "UTF-8") + ".xlsx");
    response.setContentType("application/x-download");
    fs.writeFilesystem(outstream);
  • wxyrrcj6月前
    引用11
    再转下 xls 不知道行不行
  • zurmokeeper楼主6月前
    引用12
    @wxyrrcj 不行,xls 不是用 EncryptionMode.agile 加密的,这个是 xlsx 格式用的,xls 有自己的加密算法
  • zurmokeeper楼主6月前
    引用13
    @yesterdaysun 商业的我看不到源码,说是有个 openxls 的开源版,却一直没找到源码
  • 回复请 登录 or 快速注册
返回