新闻中心

openpyxl怎样按行和按列读取excel

2025-12-04
浏览次数:
返回列表
openpyxl按行或列读取Excel应使用1-based索引,优先调用iter_rows()和iter_cols()配合values_only=True高效获取值,避免直接遍历sheet.rows/columns或手动cell(i,j)。

openpyxl怎样按行和按列读取excel

openpyxl 按行或按列读取 Excel,核心在于理解它用的是“1-based索引”(行号列号从1开始),不是 Python 常见的 0-based。操作前先加载工作簿、选中工作表,再用合适的方法遍历——不是硬套 for 循环加 cell(i,j),而是优先用内置迭代器更安全高效。

按行读取:推荐用 iter_rows()

比手动 range + cell(i,j) 更简洁、更健壮,自动跳过空单元格(除非指定),也支持限定范围:

  • 读全部行:for row in sheet.iter_rows(): —— 默认从第1行第1列开始
  • 读指定范围:for row in sheet.iter_rows(min_row=2, max_row=5, min_col=1, max_col=3):
  • 每行返回的是 tuple of Cell 对象,取值要加 .value:[cell.value for cell in row]
  • 想直接转成列表嵌套(每行一个子列表):data = [list(row) for row in sheet.iter_rows(values_only=True)]values_only=True 是关键,省去反复写 .value)

按列读取:用 iter_cols()

逻辑和 iter_rows 类似,只是方向换成了列:

Artflow.ai Artflow.ai

可以使用AI生成的原始角色、场景、对话,创建动画故事。

Artflow.ai 92 查看详情 Artflow.ai
  • 读第 A 列所有非空单元格:for col in sheet.iter_cols(min_col=1, max_col=1):
  • 读 B~D 列,第3到第10行:sheet.iter_cols(min_col=2, max_col=4, min_row=3, max_row=10)
  • 同样建议加 values_only=True 直接得值:[cell.value for cell in col] 或整列打包:list(sheet.iter_cols(min_col=1, values_only=True))[0](取第1列值列表)

其他实用读取方式

不总需要循环,有些场景更简单:

  • 读某一行(比如第3行):row3 = list(sheet[3]) → 返回第3行所有 Cell 对象;加 values_only=True 就是值列表
  • 读某一列(比如 A 列):col_a = list(sheet['A'])sheet['A:C'] 可读多列
  • 读指定区域(如 A1:C5):cells = sheet['A1:C5'] → 返回二维 tuple,cells[0][0].value 是 A1 值

注意几个易错点

  • 不要用 sheet.rows / sheet.columns 直接遍历:它们是生成器,遍历一次就空了,且行为不稳定;坚持用 iter_rows()iter_cols()
  • 空单元格默认返回 None,不是空字符串,做 str 操作前建议判空
  • 如果文件很大,考虑启用 只读模式load_workbook(filename, read_only=True),内存占用低,但只能读不能改
  • 读取前确认工作表存在,避免 KeyErrorif 'Sheet1' in wb.sheetnames:

基本上就这些。用对 iter_rows 和 iter_cols,再配上 values_only=True,读取就又快又干净。

以上就是openpyxl怎样按行和按列读取excel的详细内容,更多请关注其它相关文章!


# 相关文章  # 营口专业网站建设套餐  # 涿州市网站推广找哪家好  # 株洲定制型网站建设费用  # SEO教学视频横竖  # 网店推广网站图片  # 联通营销推广岗职责  # 企业网站建设及优化建议  # 网站建设遇到的客户需求  # 网络营销推广可行性方案  # 专业网站建设搭建方案  # 解决问题  # 中文网  # openpyxl  # 如何在  # 几个  # 如何用  # 行号  # 单元格  # 的是  # 遍历  # 内存占用  # python  # excel  # 读取excel 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: J*aScript数据结构转换:将对象数组按类别分组  深入理解Promise链:如何在catch后中断then的执行  Odoo 16:在表单视图中基于当前记录动态修改Tree视图属性  处理嵌套交互式控件:前端可访问性指南  微博网页版首页入口 微博电脑端官网登录链接  QQ邮箱登录官网首页 腾讯QQ邮箱网页入口  Go语言中高效处理x-www-form-urlencoded表单数据  如何在复杂的电商平台中优雅地管理共享资源并确保正确重定向,使用spryker-shop/resource-share-page模块助你一臂之力  处理动态列数据:J*a ArrayList的正确初始化与字符累加教程  使用 Pandas 高效处理 .dat 文件:字符清理与数据计算  Golang如何优雅处理error_Golang error处理最佳实践总结  痛风发作了怎么办? 快速止痛和后期饮食调理  Spring Boot嵌入式服务器与J*a EE:功能支持深度解析  MAC怎么让Dock栏只显示当前运行的应用_MAC终端命令实现极简Dock栏  Archive of Our Own官网直达 AO3最新可用地址一览  PPT平滑切换怎么做 PPT炫酷“平滑”切换动画制作教程【必学】  J*aScript数组对象转换:按指定键分组与值收集  Win10磁盘清理工具在哪 Win10打开并使用磁盘清理【教程】  c++20的std::jthread是什么_c++可中断线程与RAII式管理  CKEditor 5 自定义构建在React应用中渲染失败的调试与解决  yy漫画网页版官方入口_yy漫画官网登录页面链接  UE5.7引擎表现爆炸优化无敌!5090跑4K稳定60FPS  Android Studio计算器C键功能异常排查与修复教程  《噬血代码2》新预告片发布 展示游戏剧情  荒野行动PC版怎么注册_荒野行动PC版账号注册详细流程图文教程  Highcharts 雷达图径向轴标签定制指南:利用多Y轴实现数值标注  PHP中高效并行检查多链接状态的教程  微信群消息显示延迟如何解决 微信群消息刷新优化方法  外媒分析《GTA6》定价:卖100美元可以但真没必要!  J*a应用集成GitHub CLI与API认证指南  C++如何检测键盘输入_C++ _kbhit与_getch函数非阻塞输入  Lar*el Form Request中唯一性验证在更新操作中的正确实现  快手赚钱渠道_快手收益来源  Promise错误处理:在catch后终止链式then执行的策略  树莓派传感器触发:通过Twilio API发送WhatsApp消息教程  必由学官方登录入口 必由学教师学生账号快速访问  HTML长属性值处理:表单action路径优化与代码规范应对  C++如何进行游戏物理模拟_使用Box2D库为C++游戏添加2D物理效果  《刺客信条:影》PS5 Pro和Switch 2画面对比  如何使用Go和Martini动态服务解码后的图片  ArrayList与LinkedList操作复杂度详解:遍历与修改  Windows 11怎么彻底关闭定位_Windows 11服务中禁用Geolocation  厨房不锈钢水槽发黑生锈怎么处理_水槽用可乐+锡纸2分钟抛亮如新  网易大神怎么保存别人动态的图片_网易大神动态图片保存方法  AO3最新官网入口公告_2025AO3镜像站实时查询方法  C++ map遍历方法大全_C++ map迭代器使用总结  C++指针和引用有什么区别_C++内存管理核心概念深度解析  哔哩哔哩忘记密码了怎么找回_哔哩哔哩密码找回方法  抖音隐秘迷城小游戏入口_ 抖音冒险解谜小游戏秒玩  在J*a中如何开发简易电子商务商品管理系统_商品管理系统项目实战解析 

搜索