如何使用 Apache POI 读取 xlsx 文件中的记录数?
我需要在 java 中读取 *.xlsx 文件,因为我正在使用 Apache POI API。如果行数较少,它可以很好地工作,但是当行数大于或等于 65536 时。我得到一个异常 java。 lang.OutOfMemoryError:Java堆空间
。请帮助我如何解决这个问题。
谢谢 萨梅克
I have requirement to read *.xlsx file in java for that i am using Apache POI API.if number of row are less it's work nicely but when number of row are greater then or equals 65536. i got an exception java.lang.OutOfMemoryError: Java heap space
.please help me how i am able to solve that problem.
thanks
sameek
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
来解决
这可以通过增加可用内存(Java 堆空间) http://hvanbelle.blogspot.com/2009/07/increase-heap-size-in-java-to-prevent.html
http://confluence.atlassian.com /display/DOC/Fix+Out+of+Memory+Errors+by+Increasing+Available+Memory
http://rifers.org/blogs/gbevin/2005/4/21/get_rid_of_outofmemoryerror
This can be fix by Increasing Available Memory (Java heap space)
http://hvanbelle.blogspot.com/2009/07/increase-heap-size-in-java-to-prevent.html
http://confluence.atlassian.com/display/DOC/Fix+Out+of+Memory+Errors+by+Increasing+Available+Memory
http://rifers.org/blogs/gbevin/2005/4/21/get_rid_of_outofmemoryerror
如果您可以将 xslx 文件保存为 xml - 您可以使用 SAX,它非常快并且没有行数限制。
If it possible for you save xslx file as xml - you can use SAX which is very quick and hasn't limitation about number of rows.
POI 支持低内存方式以流式方式读取 .xlsx 文件。请参阅http://poi.apache.org/spreadsheet/how-to.html# xssf_sax_api 了解其工作原理以及如何开始的详细信息。
POI supports a low memory way to read .xlsx files in a streaming way. See http://poi.apache.org/spreadsheet/how-to.html#xssf_sax_api for details on how it works, and how to get started.