【求助】使用POI生成excel的巨坑
问题描述:由于业务需要调用第三方平台接口获取数据,但第三方接口需要传入一个execl的.xlsx文件,且限定了请求数据的数量。所以使用java的poi将全部4000多条数据分解成了4000多个.xlsx表格,每条表格只装一条数据,然后循环请求调用第三方的接口。问题来了:我使用poi所分的表格,传到第三平台后,一直返回错误,找了很久问题(格式方面的等等),最后才发现,我只需要点开一个分表(用wps打开),不做任何修改操作,然后保存,退出。再把表传过去,就能成功获取到数据。而且我发现,poi生成的一个表,大小为4kb。打开后保存,大小变成了9kb。所以说,poi生成的.xlsx表格一定是不完整的,少了什么数据,导致第三方的平台无法解析。想请教各位大佬,在不改变第三方接口的情况下,这种情况怎么解决?如果能知道poi生成的表少了什么东西就更好了。谢谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(16)
它这个对xlsx支持不太好。有时候xlsx打不开,换成xls莫名其妙就行了
楼主解决了吗
先用 wps 打开 它 能修复 然后 用这个 修复的 去做导出模板
同问
回复
谢谢!不过这个我试过,还是没成功,利用模板导出的新excel还是需要再打开保存一次才行
我最终就是按 游侠v 这个大佬说的,所用模板就是一开始构造好了的,而不是用poi去生成的。
github开源项目 hutool 了解一下,excel导出导入不再麻烦
想问一下,大佬最后怎么解决的?我弄了一整天没搞定。
没有 不是格式问题 已经解决了
你是不是格式用错了
poi也不是自己创建的excel,他也是用微软提供的接口生成的。
目前用的比较多的解析包 是POI或者easyExcel 用这两个工具包先试着解析下自己生成的Excel文件,如果可以就和第三方沟通下 他们的解析方式或者解析错误堆栈,再找解决方案
我觉得你说的方法应该可行。我去试试
已经解决了 谢谢大佬!
回复
:)
用excel保存一个空文件作为模板,然后POI打开后写入数据,应该就可以了。