当前位置: 首页 > news >正文

使用openpyxl时的一些注意点

一、是否需要close()?

在使用 openpyxl 时,wb.save() 后一般不需要再手动调用 wb.close()。wb.save() 会自动处理文件写入和释放。

如果是使用openpyxl.load_workbook(filename, read_only=True) 打开了一个只读模式的工作簿,此时会建立文件流,需要在使用完之后调用 wb.close() 来释放资源。不然的话内存中可能还会保留一个对文件的占用。

二、在操作ws.cell()时,column可以指定字符串吗,例如‘AK’?

不可以直接使用列字母 'AK' 作为 column 参数,所以这时候需要openpyxl.utils.column_index_from_string() 把 'AK' 转换成数字列号:

from openpyxl.utils import column_index_from_stringcol_num = column_index_from_string('AK')  # AK → 37ws.cell(row=new_row, column=col_num, value='ssss')

反过来,如果有列号,想变成列字母:

from openpyxl.utils import get_column_lettercol_letter = get_column_letter(37)  # → 'AK'

三、如何排除第 1 列再找最大行

def get_real_max_row(ws):for row in reversed(range(1, ws.max_row + 1)):# 遍历该行中除第1列以外的单元格for cell in ws[row][1:]:if cell.value is not None:return rowreturn 0

四、Excel中的行和列的index是从0开始的吗?

在使用 openpyxl 处理 Excel 的时候,Excel 中的行和列索引是从 1 开始的,例如:

openpyxl.cell(row=1, column=1) 对应的是 Excel 中的单元格 A1
row=1 是第 1 行
column=1 是第 1 列(即 A 列)
column=2 是 B 列,以此类推

相关文章:

  • 1.2 腾讯校招通关指南-面试官评分标准:技术岗/产品岗核心考核点揭秘
  • 【自相关】全局 Moran’s I 指数
  • OPPO Android 移动设备日志文件目录结构及其内容分析
  • git合并分支原理
  • 适合stm32 前端adc使用的放大器芯片
  • jetson orin nano 开发板conda 的 base 环境在 shell 启动时自动激活
  • 如何解决服务器文件丢失或损坏的问题?
  • JAVA学习-Stream
  • Spring IoC与DI详解:从Bean概念到手写实现
  • Spring Batch 专题系列(四):配置与调度 Spring Batch 作业
  • 分库分表-除了hash分片还有别的吗?
  • 算法思想之分治-快排
  • Java基础 4.15
  • PCL八叉树聚类
  • Python基础语法2
  • 游戏代码编辑
  • 凸优化第2讲:凸优化建模
  • 一篇文章快速上手linux系统中存储多路径multipath的配置
  • MCP、RAG与Agent:下一代智能系统的协同架构设计
  • Cribl 中数据脱敏mask 的实验
  • 印方称与巴基斯坦军队在克什米尔交火
  • 当智驾成标配,车企暗战升级|2025上海车展
  • 一周观展|五一假期将到,特展大展陆续开幕
  • 本周看啥|在电影院里听民谣,听摇滚,燥起来吧
  • 全国首例!上市公司董监高未履行公开增持承诺,投资者起诉获赔
  • 外交部:美国是国际军控与防扩散体系的最大破坏者