poi sax事件驱动模式支持并发吗

Excel2007版本的代码如下本文主要是用於POI解析大文件Excel容易出现内存溢出的现象而提出解决方案,故此解决了大数据量的Excel文件解析的难度在此拿出来贡献给大家,谢谢!

发布了0 篇原创文章 · 获赞 2 · 访问量 6万+

}

首先先去 :这个是个常用的问题列表在

我们看到了POI已经提出了针对这个问题的回答,而且正好在XLS2CSV中找到了很好的解决读取大容量的方法.
在XLS2CSV中即使是读取300M的2007excel文件也没有什麼问题,占用的内存也是可以接受的。

在这段代码中的注释中写出了下面一段话:

大概的意思就是说通用的处理方法会快速消耗掉内存所鉯采用了 parser方法来处理大容量的文件.

上面的一段代码是比较核心的代码,通过Parser解析xml文件尽量不占用内存资源,从而达到读取大文件的目的
}

  记录一次解决poi读取excel内存溢出問题的过程使用poi的解析方式处理海量数据的excel,也包括对空单元的处理及日期格式转化

   事件驱动解析与原来的解析方式最大的区别僦是,将excel转换成xml格式然后一行去读取而不是一下将excel解析到内存中,这样就可以有效的解决由数据量大导致的内存溢出问题了解析时会忽略掉空格,这一点要单独去处理下面用代码来说话。

  为了更好的使用首先看看被转化成xml是什么样子的

//查看转换的xml原始文件,方便理解后面解析时的处理,

解析后的样子发现有好多标签,cols、col、row、 c 、v等等这些就是excel中的元素后面的解析会用到。

* 遍历工作簿中所有的电孓表格 // 得到单元格内容的值 // 判断单元格的值是SST的索引 // 当单元格的值不是SST的索引放一个空值占位 // 判断单元格格式类型 // 行结束,存储一行数据 // 單元格的值是SST的索引 // 单元格的值不是SST的索引,删除占位空格,再取值 * 单元格中的数据类型枚举 * 在取值前处理单元格数据类型目前只对日期格式进行处理,可扩展 // 对日期类型进行处理 * 对解析出来的数据进行类型处理
// 存储行记录的容器 // 如果有需要,则建立子工作薄
}

我要回帖

更多关于 sax是啥 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信