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

使用VS Code+Python3.11读取Excel报错:'ReadOnlyWorksheet'无'defined_names'属性

问题原因分析
  • 依赖库版本不兼容:这是最核心的原因。两个环境里的pandas或它依赖的Excel读取引擎(比如openpyxl、xlrd)版本存在差异。比如VSCode的Python3.11环境中,新版openpyxl修改了ReadOnlyWorksheet类的结构,删掉了defined_names属性;而Anaconda环境用的是旧版openpyxl,这个属性还存在,所以不会报错。

  • 环境依赖冲突:VSCode的Python3.11环境可能存在库版本冲突,比如pandas和openpyxl版本不匹配。有些新版pandas读取Excel的调用逻辑发生了变化,但环境里的openpyxl未适配这个变化,就会出现访问不存在属性的错误。

  • 读取引擎差异:pd.read_excel会根据文件类型自动选择读取引擎,不同环境的默认引擎可能不同。比如Anaconda环境可能默认用xlrd读取.xls文件,而VSCode环境用openpyxl读取.xlsx文件,两者的工作表对象结构不一样,也会引发错误。

解决建议
  • 统一依赖版本:先在Anaconda环境里执行pip list,记下pandas、openpyxl(或xlrd)的版本号,然后在VSCode的Python3.11环境里用pip install pandas==x.x.x openpyxl==y.y.y安装完全相同的版本。

  • 显式指定读取引擎:调用pd.read_excel时加上引擎参数,比如针对.xlsx文件用part=pd.read_excel(path,sheet_name = mto_sheet, engine='openpyxl'),针对.xls文件用engine='xlrd',确保两个环境使用一致的读取逻辑。

  • 检查文件状态:确认Excel文件没被其他程序(比如Excel客户端)锁定,锁定状态会触发只读模式读取,可能导致工作表对象属性异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 01:15:31