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

使用Python的openpyxl处理Excel表格循环时遇类型错误问题

解决openpyxl循环处理Excel时的TypeError问题

错误原因

出现TypeError: 'tuple' object is not callable的核心原因有两种:

  • 误将工作表的max_row属性当作方法调用(加了括号()),比如写成wb_sheet.max_row()而非wb_sheet.max_row
  • 代码中自定义了名为max_row的元组变量,覆盖了openpyxl工作表对象的原生属性

从错误信息里的wb_sheet.max_row+1来看,最可能的情况是你在实际代码中错误给max_row加了括号,导致试图调用一个元组对象,触发报错。

修正后的完整代码

from openpyxl import load_workbook

# 加载目标Excel文件,注意路径正确性,当前目录直接写文件名即可
book_stock = load_workbook(r'file.xlsx')
sheet_stock = book_stock.active

# 从第2行开始遍历到最后一行,设置第4列的单元格格式为日期格式
for row in range(2, sheet_stock.max_row + 1):
    sheet_stock.cell(row=row, column=4).number_format = 'dd/mm/yyyy'

# 务必保存修改,否则所有更改不会写入文件
book_stock.save('updated_book_stock.xlsx')

关键注意点

  • 路径修正:原代码中的r'\file.xlsx'指向系统根目录,若文件在当前工作目录,直接使用r'file.xlsx';如需指定绝对路径,用r'C:\your_full_path\file.xlsx'
  • 属性调用:max_row是工作表的属性,不是方法,调用时不要加括号()
  • 变量名冲突:检查代码中是否存在max_row = (...)这类定义元组的语句,避免覆盖原生属性
  • 保存文件:修改完成后必须调用save()方法,指定保存路径和文件名

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:15:16