首页 > 解决方案 > 使用 Apache POI 读取 Excel 数据的问题

问题描述

亲爱的,我在读取 Excel 数据并将其加载到超过 15000 行的数据库时遇到问题,因为它会导致 OutOfMemory 错误。这是一个 Java Swing 应用程序,其中有一个加载 excel 的操作,另一个操作是将完整的数据写入 DB。

是否可以每次读取大约 3000 条记录并将其加载到缓存中,然后将其写入 DB 而不会导致内存问题,而不是一次加载 15k 条记录?任何人都可以帮助我吗?

标签: excelapacheapache-poiout-of-memory

解决方案


您可以使用org.apache.poi.xssf.eventusermodel.XSSFReader. 这个库使用 SAX 解析器来读取 xlsx 文件,这也非常节省内存。第二种选择是使用excel-streaming-reader. 它还包含单元格信息。如果有空单元格,它也可以完美运行。我已经使用了这两种方法。


推荐阅读