在使用jmix2.2版本的时候,发现poi的默认版本为5.2.3。我想使用的EasyExcel来操作Excel文件的导入导出,但EasyExcel的poi版本为4.1.2,直接使用会报错。请问有没有办法将Jmix 2.2版本的poi版本降级?
1 个赞
可以用gradle的 exclude
配置移除Jmix中包含的 poi,参考 :Downgrading versions and excluding dependencies
但是有个风险就是 4.1.2 可能不兼容 Jmix 2.2,你可以试试看。
1 个赞
好的 我先试试排除掉,不行的话,我就使用最原始的poi来处理。谢谢您
你好,请问你是怎么把EasyExcel集成到Jmix中使用的?有没有成功?有没有Demo参考下?
我只是用EasyExcel写过读Excel文件并且保存到数据库中,没有试过写Excel。
-
先用Jmix自带的按钮将文件上传,然后通过按钮获取到文件,将其转换成InputStream。
-
然后创建一个Listener类,继承
AnalysisEventListener
类或者实现ReadListener
都可以,泛型里面我用的是Map<Integer, String>
,这样Excel文件中每一行的每一列都可以用Map的Key作为索引,值都转换成了String。
-
编写Listener的invoke方法,
达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
-
下一步就是处理数据,并赋值到实体类中
-
在
invoke
方法和doAfterAllAnalysed
中都调用保存数据的方法即可。 -
上传按钮,点击确定的地方,添加上
EasyExcel.read().sheet().headRowNumber(1).doRead();
方法。
EasyExcel读取文件有很多种方式,我这里是选择的InputStream
和Listener
的方式。
写的比较乱,凑合看,主要涉及我们业务的名词打码了,所以搞得比较乱。不懂可以私信我。
1 个赞
OK,感谢