问题的起因:导入excel内存溢出然后使用了一个现成的车轮子com.monitorjbl.xlsx-streamer-2.0.0.jar(https://github.com/monitorjbl/excel-streaming-reader)
产生兼容问题的原因:由于项目中使用了org.apache.poi-3.9.jar而com.monitorjbl.xlsx-streamer-2.0.0.jar中依赖了org.apache.poi-4.0.0.jar、org.apache.poi-ooxml-4.0.0.jar,最主要的是我们的项目中使用的org.apache.poi-3.9.jar版本还不能替换成org.apache.poi-4.0.0.jar,所以导致比较尴尬的场景。
解决办法:由于技术未达到一定的高度,所以使用了一种比较笨的解决方案,修改了poi源代码的包路径,将org.apache.poi包路径修改成net.se.org.apache.poi,我们都知道java的包路径机制吧,就是同一个类名不同的包路径即是不同的对象(还有不同的类加载器加载的类也是不同对象)。
修改后的poi地址:
https://download.csdn.net/download/qq_19291205/12343154 (poi-4.0.0.jar--修改过后的poi)
https://download.csdn.net/download/qq_19291205/12343158 (poi-ooxml-4.0.0.jar-修改过后的poi-ooxml)