繁体   English   中英

Microsoft Open XML使用SAX方法逐行读取Excel文件并查找单元格数据

[英]Microsoft Open XML Read Excel file using SAX method row by row and finding cell data

我在这里查看了一些关于库存溢出的帖子,但是我找不到我想要的东西,而我发现的那些接近的东西似乎对我不起作用。 使用OpenXmlReader不会读取行,因为它似乎永远不会打开工作表数据至从未找到的元素类型。

我需要使用使用OpenXmlPartReader的SAX方法。 我要做的是打开Excel文档并逐行阅读。 对于每一行,我需要通过索引号或id以及该单元格中的值来抓取几个单元格。 因此,我不需要遍历所有知道的单元格。

我希望使用SAX方法来避免内存不足,因为我预计需要读取大文件。

我有一个类似的问题要解决。 结合在SO中找到的几个相关答案后,我编写了一个自定义的萨克斯阅读器,该阅读器能够从第一张表中提取所有行。

看看我的xlsx-sax-exporter github项目,让我知道它如何为您工作。

读者可以非常快速地打开工作表,并在构造时通过检查SheetDimensions参考来计算其尺寸。

在检查工作簿的单元格和编号格式之后,它还能够格式化数字和日期。 它甚至尝试覆盖默认编号格式的情况。

阅读器可以使用分页,因为我希望支持在服务器上提取分页结果,并且如果按顺序检索所有页面,它的性能最佳。 由于sax流和内存使用率保持在较低水平,因此按预期快速发展。 在不将行保留在内存中的情况下进行基准测试,它永远不会使用超过10 MB(发行版)的内存。

如果您有任何更改要提出建议,请随意分叉并发送拉取请求,或者只是提出一个问题,如果有时间,我会尽力解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM