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

使用openpyxl遇TypeError:Table.__init__()不支持displayName参数

解决openpyxl中Table初始化的TypeError问题

问题详情

运行代码时触发以下错误:

TypeError: Table.__init__() got an unexpected keyword argument 'displayName'

代码完全照搬openpyxl官方文档示例,但依旧报错;移除displayName参数后,又出现与ref参数相关的错误。代码如下:

from openpyxl import Workbook
from openpyxl.worksheet.table import Table, TableStyleInfo

from reportlab import Table


#........ data is a list like in the example

# Create a Workbook instance
wb = Workbook()
# Create sheets
ws_source = wb.active

# Append data to the first sheet
for row_data in data:
    ws_source.append(row_data)

ws_source.title = "Source Sample List"
# Create a table with the data
table_range = "A1:I" + str(len(data))
tab = Table(displayName="SourceSampleTable", ref=table_range)
tab.tableStyleInfo = TableStyleInfo(
    name="TableStyleMedium9", showFirstColumn=False, showLastColumn=False, showRowStripes=True, showColumnStripes=True
)
ws_source.add_table(tab)  # Add the table to the sheet

问题原因

你同时导入了两个同名的Table类:一个是openpyxl用于Excel表格的Table,另一个是reportlab用于生成PDF表格的Table。代码中实际调用的是reportlab的Table类,它不支持openpyxl的displayName参数,也不兼容ref参数的用法,这才导致了参数错误。

修复方法

有两种方式解决命名冲突:

  1. 删除多余导入:如果代码中不需要用到reportlab的Table,直接删掉from reportlab import Table这一行即可。
  2. 使用别名区分:如果需要保留reportlab的导入,给openpyxl的Table起别名,避免混淆:
from openpyxl import Workbook
from openpyxl.worksheet.table import Table as OpenpyxlTable, TableStyleInfo

# 保留reportlab的导入(如果需要的话)
from reportlab import Table

# 创建Excel表格时使用别名
tab = OpenpyxlTable(displayName="SourceSampleTable", ref=table_range)

额外建议

如果修复命名冲突后仍有问题,检查你的openpyxl版本是否和文档匹配。旧版本可能不支持部分参数,执行pip install --upgrade openpyxl更新到最新稳定版即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 01:04:52