jmix2.2默认的poi依赖版本可以降级吗?

在使用jmix2.2版本的时候,发现poi的默认版本为5.2.3。我想使用的EasyExcel来操作Excel文件的导入导出,但EasyExcel的poi版本为4.1.2,直接使用会报错。请问有没有办法将Jmix 2.2版本的poi版本降级?

可以用gradle的 exclude 配置移除Jmix中包含的 poi,参考 :Downgrading versions and excluding dependencies

但是有个风险就是 4.1.2 可能不兼容 Jmix 2.2,你可以试试看。

1 个赞

好的 我先试试排除掉,不行的话,我就使用最原始的poi来处理。谢谢您

你好,请问你是怎么把EasyExcel集成到Jmix中使用的?有没有成功?有没有Demo参考下?

我只是用EasyExcel写过读Excel文件并且保存到数据库中,没有试过写Excel。

  1. 先用Jmix自带的按钮将文件上传,然后通过按钮获取到文件,将其转换成InputStream。

  2. 然后创建一个Listener类,继承AnalysisEventListener类或者实现ReadListener都可以,泛型里面我用的是Map<Integer, String>,这样Excel文件中每一行的每一列都可以用Map的Key作为索引,值都转换成了String。
    image

  3. 编写Listener的invoke方法,达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
    image

  4. 下一步就是处理数据,并赋值到实体类中
    image

image

  1. invoke方法和doAfterAllAnalysed中都调用保存数据的方法即可。

  2. 上传按钮,点击确定的地方,添加上EasyExcel.read().sheet().headRowNumber(1).doRead();方法。
    image

EasyExcel读取文件有很多种方式,我这里是选择的InputStreamListener的方式。

写的比较乱,凑合看,主要涉及我们业务的名词打码了,所以搞得比较乱。不懂可以私信我。

1 个赞

OK,感谢