【发布时间】:2021-02-08 12:50:44
【问题描述】:
我引用此文档https://poi.apache.org/components/spreadsheet/how-to.html#xssf_sax_api 来读取大型 excel (.xlsx) 文件。我可以使用这种方法读取整个 .xlsx 文件,但在从文件中读取记录时却无法获取总行数。
根据要求,用户正在上传 .xlsx 文件,并且数据始终在 excel 的第一列 (A) 中可用。我从 .xlsx 文件中一一读取记录并发送到队列。但我也想将每个发送数据的记录总数发送到队列。
我几乎为这个解决方案花了 3 个小时,但没有找到合适的代码。
任何帮助将不胜感激。
【问题讨论】:
-
在解析文件时跟踪行号,并返回看到的最大行号?
-
@Gagravarr 我没明白。你能详细说明一下吗?
-
查看您链接到的代码中的
startElement方法——它显示了如何获取单元格的引用,其中包括行号。只需在解析时跟踪它的最大值 -
@Gagravarr 感谢您的详细说明。我已经为不同的目的跟踪行号,但是当调用“endElement”方法时,我需要总行号eveytime。根据要求,我想将每条记录的总行号发送到队列。在 endElement 方法中,我编写了这个逻辑以在队列中发送。
-
你必须解析文件两次,一次是为了得到总数,然后是第二次用值
标签: java apache-poi saxparser