news 2026/7/30 4:19:05

Python-openpyxl高级操作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python-openpyxl高级操作

获取单元格属性

单元格基本信息

除了 value(值),单元格还有以下常用属性:

属性说明示例
cell.row行号(从1开始)2
cell.column列号(从1开始)2
cell.coordinate坐标'B2'
cell.value单元格值'李白'

代码示例

from openpyxl import load_workbook filePath = r'D:\王者小学.xlsx' workbook = load_workbook(filePath) sheet = workbook["花名册"] # 获取单元格 cell = sheet["B2"] # 李白 cell2 = sheet["C4"] # 96 # 打印单元格属性 print(f"单元格 {cell.coordinate}:") print(f" 行号: {cell.row}") print(f" 列号: {cell.column}") print(f" 值: {cell.value}") print(f"\n单元格 {cell2.coordinate}:") print(f" 行号: {cell2.row}") print(f" 列号: {cell2.column}") print(f" 值: {cell2.value}")

运行结果

单元格 B2: 行号: 2 列号: 2 值: 李白 单元格 C4: 行号: 4 列号: 3 值: 96

应用场景

  • 遍历单元格时需要知道当前位置
  • 根据行列号进行条件判断
  • 动态生成坐标

获取区域数据进阶

按列获取数据:sheet.iter_cols()

上一篇我们学了 iter_rows() 按行获取数据,现在学习 iter_cols() 按列获取

from openpyxl import load_workbook filePath = r'D:\王者小学.xlsx' workbook = load_workbook(filePath) sheet = workbook["花名册"] # 按列获取数据(第1-2列,第1-4行) print("按列获取数据:\n") for col in sheet.iter_cols(min_row=1, max_row=4, min_col=1, max_col=2): print(f"列数据: {[cell.value for cell in col]}")

运行结果

按列获取数据: 列数据: ['学号', '1', '2', '3'] 列数据: ['姓名', '李白', '甄姬', '后羿']

对比记忆

  • iter_rows() → 横向遍历,一行一行读取
  • iter_cols() → 纵向遍历,一列一列读取

快速获取所有行列:sheet.rows / sheet.columns

from openpyxl import load_workbook filePath = r'D:\王者小学.xlsx' workbook = load_workbook(filePath) sheet = workbook["花名册"] # 获取所有行 print("所有行数据:") for row in sheet.rows: print([cell.value for cell in row]) # 获取所有列 print("\n所有列数据:") for col in sheet.columns: print([cell.value for cell in col])

效果等同于

  • sheet.rows = sheet.iter_rows()
  • sheet.columns = sheet.iter_cols()

注意:这两个属性会加载所有数据,大数据量时建议使用 iter_rows() / iter_cols()


行列操作

插入空行/空列

方法语法说明
插入行sheet.insert_rows(idx, amount)在 idx 行前插入 amount 行
插入列sheet.insert_cols(idx, amount)在 idx 列前插入 amount 列

代码示例

from openpyxl import load_workbook filePath = r'D:\王者小学.xlsx' workbook = load_workbook(filePath) sheet = workbook['花名册'] # 在第3行前插入2行空行 sheet.insert_rows(idx=3, amount=2) # 在第2列前插入1列空列 sheet.insert_cols(idx=2, amount=1) workbook.save(r'D:\王者
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/30 4:16:30

基于51单片机的双通道波形发生器设计:从DAC原理到Proteus仿真

1. 项目缘起与核心价值最近在整理大学时期的项目资料,翻到了这个基于51单片机的波形发生器课设。当时为了这个项目,在图书馆和实验室泡了整整两周,从原理图绘制、代码调试到Proteus仿真,踩了不少坑,也收获了很多。现在…

作者头像 李华
网站建设 2026/7/30 4:13:09

小龙虾Windows版OpenClaw 2026免费下载,配置详解

兄弟们姐妹们,今天咱们来聊点实在的。作为一个天天跟各种工具软件打交道的“老油条”,最近我又淘到一个宝贝——小龙虾Windows版OpenClaw 2026。别被这名字唬住,它其实就是一个超级好用的开源项目工具,专门帮你在Windows系统上跑一…

作者头像 李华
网站建设 2026/7/30 4:12:41

香橙派/树莓派OpenCV环境搭建:从系统烧录到摄像头测试全攻略

1. 项目概述与核心价值最近几年,香橙派和树莓派这类单板计算机在电子设计竞赛、嵌入式视觉项目和创客圈子里火得不行。它们体积小、功耗低,但性能足够跑起一个完整的Linux系统和像OpenCV这样的计算机视觉库,简直就是为“电赛”这类需要快速原…

作者头像 李华
网站建设 2026/7/30 4:12:21

BIC建模与法诺共振在电磁仿真中的应用

1. BIC通用建模基础与核心概念BIC(Boundary Integral Code)作为计算电磁学领域的通用建模工具,其核心价值在于通过边界积分方法高效求解各类电磁场问题。与传统的有限元法(FEM)或时域有限差分法(FDTD&#…

作者头像 李华