使用开源的 Sjxlsx Java API 高效读取大型 Excel 文件(超过 100 万行)

主要观点:开发者处理大 Excel 文件时会面临挑战,常见错误为“out of memory”,有需求处理包含 100 个工作表且每个工作表有 100 万条记录和至少 100 列的工作簿,需在平均层级云环境或本地 Windows 服务器上部署,不能使用“interop”且其会在多线程应用中导致间歇性挂起问题。开源解决方案“Apache POI”流行但会出现“Java heap space - Out of memory error”,“sjxlsx”是开源 Java API,有“classic”和“stream”两种模式,使用 STAX 处理 XML 输入输出,速度和内存是其主要目标,经测试其能读取大 Excel 数据集且比 Apache POI 消耗内存少,还支持写入 Excel 并在工作表中提供丰富的数据格式,如可编写富样式行。
关键信息:100 个工作表、100 万记录、至少 100 列、不同 Excel 版本支持行数、第三方许可证限制、开源方案需求、Apache POI 错误及资源使用、sjxlsx 模式及资源使用、性能结果等。
重要细节:各代码段的具体功能及参数,如读取工作表名、按不同模式读取 Excel 数据、写入 Excel 及编写富样式行等代码的具体实现细节,以及不同操作下的 CPU 和内存资源使用情况等。

阅读 28
0 条评论