news 2026/6/10 13:02:49

高效读取 100 万行 Excel 大文件数据

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
高效读取 100 万行 Excel 大文件数据

我先尝试了市面上常见的几套方案:

方法描述性能结果结论
pandas方便但会一次性加载大内存20–40 秒太慢
openpyxl原生解析 xlsx60 秒以上最慢
pyxlsb解析 xlsb 二进制~3min30s可用但不够
CSV(Excel 转 UTF-8)纯文本读取9 秒内最快方案,无可争议

👉 大量资料与 GPT 的技术建议都指向:CSV 是读取速度最快的格式(文本解析远快于 XML / PKG 结构)

但第一次用 CSV 时却发现速度不够快,排查后发现:

❌ 用代码转换 xlsx → csv,非常慢

✅ 用原生 Excel 手动转换为 CSV UTF-8,性能最高 (WPS 转的 CSV 不是 UTF-8,会导致解析异常,不推荐)

最终测试:CSV UTF-8 格式 → 读取 80 万行,仅需 8–9 秒

性能提升超过20 倍


方案一(对比用):XLSB 版本(3.5 分钟)

from pyxlsb import open_workbook def read_xlsb_to_3d_list(file_path, sheet_name, chunk_size=10000): result = [] current_chunk = [] row_count = 0 with open_workbook(file_path) as wb: with wb.get_sheet(sheet_name) as sheet: for i, row in enumerate(sheet.rows(), start=1): if i == 1: continue row_data = [cell.v for cell in row] current_chunk.append(row_data) row_count += 1 if row_count % chunk_size == 0: result.append(current_chunk) current_chunk = [] if current_chunk: result.append(current_chunk) return result

优点:能直接读取 xlsb缺点:速度慢,不适合百万级数据


最终推荐方案:CSV 超高速版本(9 秒内)

性能最佳的做法流程

  1. 用 Excel 手动把.xlsx转为.csv (UTF-8)

  2. 使用下面的纯 Python CSV 流式读取代码

高性能 CSV 方案代码

import csv def read_csv_as_3d_list(csv_path, batch_size=10000, encoding="utf-8"): all_data = [] batches = [] current_batch = [] with open(csv_path, "r", encoding=encoding, newline="") as f: reader = csv.reader(f) next(reader, None) # 跳过表头 for row in reader: all_data.append(row) current_batch.append(row) if len(current_batch) >= batch_size: batches.append(current_batch) current_batch = [] if current_batch: batches.append(current_batch) return [all_data, batches]

实测结果(80 万行)

  • ⏱ 耗时:8–10 秒

  • ✔ 内存占用稳定

  • ✔ 三维结构满足 RPA 使用场景

  • ✔ 影刀流程执行无卡顿


经验总结

  1. 格式比工具更重要:CSV 是绝对的性能王者

XLSX 是压缩包 + XML,需要大量解析成本。

CSV 是纯文本,解析速度是数量级优势。

  1. 不推荐用 WPS 转 CSV

WPS 导出的 CSV 默认编码不是 UTF-8,会导致解析异常。

  1. 大文件一定要流式读取

不要一次性加载 DataFrame,否则内存和 CPU 都会爆。

  1. 每 1 万行切片是最佳折中

可兼顾可视化和后续处理的性能。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 22:43:26

AI 照片修复神器:如何用 AI 恢复老照片高清细节

模糊的笑容、斑驳的衣领、褪色的背景……这些充满故事感的老照片,是否因时光而渐渐模糊? 现在,你只需几秒钟,就能使用 LMU AI 在线修复老照片,让尘封记忆焕发高清光彩。 为什么选择 LMU AI 进行照片修复? …

作者头像 李华
网站建设 2026/6/10 2:15:49

PHP 轻松处理千万行数据 内存不爆,服务器不卡

说到处理大数据集,PHP 通常不是第一个想到的语言。但如果你曾经需要处理数百万行数据而不让服务器崩溃或内存耗尽,你就会知道 PHP 用对了工具有多强大。PHP 高效处理数据流的能力,配合流量控制和生成器等内存管理策略,为处理海量数…

作者头像 李华
网站建设 2026/6/9 15:29:58

LobeChat能否实现AI策展人?艺术展览主题与作品推荐

LobeChat能否实现AI策展人?艺术展览主题与作品推荐 在当代美术馆的策展办公室里,一场关于“数字哀悼”的展览正在酝酿。策展人翻阅着成堆的艺术家简历、往届展览图录和社交媒体情绪报告,试图拼凑出一个既具学术深度又能引发公众共鸣的主题框架…

作者头像 李华
网站建设 2026/6/9 19:01:04

Axolotl推理加速:3大缓存策略让GPU计算效率提升5倍

在大规模语言模型部署实践中,重复推理计算已成为性能瓶颈的核心痛点。特别是在客服系统、内容生成、批量问答等场景中,大量相同的提示词和问题模板导致GPU资源被严重浪费。Axolotl框架通过创新的缓存机制,有效解决了这一技术难题,…

作者头像 李华
网站建设 2026/6/10 9:32:49

小米运动步数自动同步终极指南:3步实现微信支付宝数据同步

小米运动步数自动同步终极指南:3步实现微信支付宝数据同步 【免费下载链接】mimotion 小米运动刷步数(微信支付宝)支持邮箱登录 项目地址: https://gitcode.com/gh_mirrors/mimo/mimotion mimotion是一款专为小米运动(Zepp…

作者头像 李华
网站建设 2026/6/9 17:42:18

Daytona:运行AI生成代码的安全与弹性基础设施

Daytona:运行AI生成代码的安全与弹性基础设施 在现代软件开发中,AI技术的应用愈加广泛,如何安全、高效地运行AI生成的代码,成为了一个重要的挑战。Daytona作为一款创新的开源项目,提供了一个安全、弹性极高的基础设施…

作者头像 李华