You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用openpyxl在Python3.6读取Excel单元格值时遇错误警告求助

为什么使用openpyxl的cell()方法会出现AttributeError和弃用警告?

咱们来拆解你遇到的两个问题:

1. 弃用警告的原因

你看到的UserWarning是因为当前版本的openpyxl已经不再推荐用ws.cell(coordinate)这种方式来获取单元格了,官方建议直接用ws[坐标字符串]的写法,比如sheet['I9'],这样更直观也符合新版本的API规范。

2. AttributeError的根源

你写的sheet.cell(9,9)是旧版本openpyxl的用法,但在你现在用的版本里,cell()方法的参数规则变了:

  • 如果只传一个位置参数,它会被当作单元格的坐标字符串(比如'I9')来处理,方法内部会尝试调用这个参数的upper()方法来统一大小写,但你传的是整数9,整数没有upper()方法,所以直接抛出了AttributeError。
  • 如果你想通过行号和列号来获取单元格,必须显式指定参数名,告诉方法你传的是row和column,而不是坐标字符串。

正确的写法

给你两种可行的解决方案:

方案一:使用单元格坐标字符串(推荐,符合官方新规范)

import openpyxl
wb = openpyxl.load_workbook(r'C:\Users\xyz\Desktop\xxx.xlsx')
sheet = wb.active
v = sheet['I9'].value  # 直接用坐标字符串
print(v)

方案二:显式指定row和column参数

import openpyxl
wb = openpyxl.load_workbook(r'C:\Users\xyz\Desktop\xxx.xlsx')
sheet = wb.active
v = sheet.cell(row=9, column=9).value  # 明确指定参数名
print(v)

这样就能同时解决警告和错误问题啦~

内容的提问来源于stack exchange,提问作者Kandan Siva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:55:21