如何使用xlwings遍历工作簿中的所有普通表格?
用xlwings遍历工作表中的普通表格
- 你遇到的报错是因为调用了错误的COM对象属性:Excel Worksheet对象里没有
Tables()方法,普通结构化表格在COM模型里对应的是ListObjects集合。 - 正确的遍历方式是调用
sheet.api.ListObjects(),而非sheet.api.Tables()。
修正后的代码示例
import xlwings as xw # 打开目标工作簿 wb = xw.Book("你的工作簿路径.xlsx") for sheet in wb.sheets: # 遍历当前工作表的所有普通表格 for index, table in enumerate(sheet.api.ListObjects()): # 打印表格名称等基础信息 print(f"第{index+1}个表格:{table.Name}") # 如需获取表格数据,可通过Range属性访问 # print(table.Range.Value)
补充说明
- 你之前能正常遍历数据透视表,是因为Worksheet对象确实内置了
PivotTables()方法,对应数据透视表集合。 - 这里的
ListObject就是Excel中通过「插入-表格」创建的普通结构化表格,包含表头、数据区域等完整结构。
内容的提问来源于stack exchange,提问作者Hibbert
相关产品推荐
相关产品推荐

