easyexcel 实现图片导入导出功能的建议

vtwuwzda  于 5个月前  发布在  其他
关注(0)|答案(3)|浏览(45)

建议先去看文档

快速开始常见问题

建议描述

目前从文档看不支持图片的导入,同时导出时文档里有提到会占用很多内存,我这里想到一些迂回的解决方案。

导入

导入时,excel文件中(按照zip解压后)有两个文件涉及到了图片的描述, xl/drawings/_rels/drawing1.xml.relsxl/drawings/drawing1.xml 。前者保存了图片路径和图片引用id的对应关系。后者保存了图片引用id和图片在表格中行列位置的关系。

导入数据前先根据这两个xml,将media文件下的图片存储到临时目录(文件名设置标记为图片的开始坐标点位置),然后读取数据时便可以根据期望图片存在的单元格坐标读取到图片。这种方法要求读取图片所在单元格必须不为空。

导出

导出时,easyexcel的文档里提到了图片会全部在内存中。如果想避免这个问题,我能想到的方法就是一开始先提供一个很小的占位图片(可以复用),将真正需要导出的图片先放在临时目录中。在使用easyexcel生成Excel之后,再替换掉media文件下的图片为真正需要导出的图片。

目前看media文件下的文件名都是image+数字格式的图片文件,如果能自定义导出时的文件名,替换时候可能更方便(如果不能修改,也只好按照顺序来作为替换依据)

xtfmy6hx

xtfmy6hx1#

图片导出使用poi5.x版本已经可以实现不全部放内存了

niknxzdl

niknxzdl2#

目前有版本支持有流式写入图片吗,golang已经放弃了,太难了。看看java有没有办法搞

bmvo0sr5

bmvo0sr53#

目前有版本支持有流式写入图片吗,golang已经放弃了,太难了。看看java有没有办法搞

使用原生poi吧

相关问题