请问有什么开源的项目支持导出加密的 xls 文件吗?或者微软官方加解密文档提供?

111 天前
 zurmokeeper

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

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

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

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

3852 次点击
所在节点    程序员
58 条回复
zurmokeeper
111 天前
@ShirOvO 是的,在 MS office 上是这样的
zurmokeeper
111 天前
@cheng6563 不是吧,那岂不是所有做这方面应用的,比如收费的 WPS ,sheetjs 收费版还有一些收费的软件,都得去猜,这样怎么互相做兼容?
ShirOvO
111 天前
@zurmokeeper #21 我刚才在 wps 也测试了一下,也是一样的效果,是使用的 easyexcel 实现的,参考代码 EasyExcelFactory.write(response.getOutputStream(), objectClass)
.registerWriteHandler(new CustomSheetWriteHandler()).registerWriteHandler(new StyleWriteHandler())
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
.autoCloseStream(Boolean.FALSE).password("123").sheet(sheetName).doWrite(list);,password('密码')方法就是设置密码
caomu
111 天前
对啊,wps 对 ms 就是会在一些小细节上有一些奇奇怪怪的兼容问题,只是 wps 有能力研发去解决而已,他们自己也以此标榜……再看很久以前的 openoffice 项目的兼容性那就是一团糟
markss
111 天前
xls2xlsx 在对 xlsx 进行加密是否可以满足要求?
zurmokeeper
111 天前
@ShirOvO 不知道 v 站这里能发文件,大佬可以 https://github.com/zurmokeeper/officecrypto-tool/issues/17 在这个 issue 这里,把你用 easyexcel 加密生成以后的 excel 上传一下吗?
zurmokeeper
111 天前
@markss 不行,我只是想实现 xls 格式的加密,xlsx 格式的加密已经实现了。不过请问下你说的 xls2xlsx 有具体的实现吗?是说找个工具把 xls 先转成 xlsx ,然后再对 xlsx 去加密?
ShirOvO
111 天前
@zurmokeeper #26 已上传,你可以看看是否符合要求
zurmokeeper
111 天前
@caomu 哭死,这就是那么多不同语言的 excel 开源项目,没有一个实现 xls 加密的原因吗?
zurmokeeper
111 天前
@ShirOvO 感谢,我去看看
markss
111 天前
试了下,libreoffice gui 保存 xls 文件时候可以选择输入密码,不过命令行 password 参数没有找到相关的文档。
zurmokeeper
111 天前
@ShirOvO 破案了,虽然导出的文件格式虽然是 xls ,但是本质上是个 xlsx 文件,只是把后缀改成 xls 导出而已,我看加密的方案用的都是 xlsx ,我把你上传的文件解密以后就是一个 xlsx 格式的内容,之前我看下 easyexcel 的源码,他的加解密都是基于 poi 实现的,poi 不支持它也不支持
ShirOvO
111 天前
@zurmokeeper #32 我只是忘了更改 content-type 这个可以更改的
zurmokeeper
111 天前
@markss 大佬可以在这里贴下截图吗? https://github.com/zurmokeeper/officecrypto-tool/issues/17 ,或者帮忙加密保存一个 xls 格式的文件,帮忙贴一下。我之前看了下 libreoffice 在 github 上的源码,我只隐约看到可能有 doc 格式的加密,但是没有发现 xls 加密的代码
lambdaq
111 天前
@zurmokeeper xlsx 的加密好像就是直接 zip 加密。。。。
zurmokeeper
111 天前
@ShirOvO 大佬,可以再帮忙设置一下,再导出一个 xls 格式的?上传到刚才那个地址吗?我这边 java 环境一直有问题。
zurmokeeper
111 天前
@lambdaq xlsx 也不是,也有自己的加密算法,这个已经实现,大佬有兴趣可以看看 officecrypto-tool 的实现
lambdaq
111 天前
@zurmokeeper 你实现了每个表单的加密吗?这个好像就麻烦一点。
shuax
111 天前
猜不到就逆向……
ShirOvO
111 天前
@zurmokeeper #36 已上传

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1059879

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX