使用openpyxl提取Excel表格时Worksheet无tables属性问题求助
问题原因
你遇到的AttributeError是openpyxl版本不兼容导致的:
- 早期版本的openpyxl仅通过私有属性
_tables存储工作表中的表格集合,未对外提供公开的tables属性接口。 - 你参考的教程基于更新版本的openpyxl编写,该版本已将
tables设为公开属性,支持直接调用worksheet.tables访问表格。
解决办法
方案1:升级openpyxl
执行命令升级到最新稳定版,即可兼容教程中的写法:
pip install --upgrade openpyxl
升级后重新运行代码,my_worksheet.tables.items()就能正常返回表格的键值对集合。
方案2:兼容旧版本(无需升级)
若无法升级依赖,可直接基于私有属性_tables处理表格,示例代码:
import openpyxl workbook = openpyxl.load_workbook('my_excel.xlsx') my_worksheet = workbook['my_worksheet'] # 遍历工作表中的所有表格 for table in my_worksheet._tables: print(f"表格名称: {table.name}") print(f"表格单元格范围: {table.ref}") # 如需提取表格数据,可通过ref属性获取单元格范围后遍历
内容的提问来源于stack exchange,提问作者user20813671
相关产品推荐
相关产品推荐

