使用tabula转PDF到Excel报错:'list' object has no attribute 'to_excel'求助
解决tabula转换PDF到Excel时的AttributeError问题
错误原因
tabula.read_pdf() 默认返回一个列表(列表中的每个元素对应PDF页面里的一个独立表格),而to_excel是Pandas DataFrame独有的方法,列表对象没有这个属性,因此触发AttributeError。
解决方案
根据PDF中表格的数量,选择对应的处理方式:
情况1:PDF页面只有一个表格
直接提取列表的第一个元素(索引为0),再调用to_excel:
import tabula import pandas as pd # 读取PDF页面的表格列表 df_list = tabula.read_pdf("files/Seniority List 2018 19.pdf", pages=1) # 提取单个表格 df = df_list[0] # 导出为Excel,index=False避免写入多余的索引列 df.to_excel('files/excel.xlsx', index=False)
情况2:PDF页面有多个表格
如果页面包含多个表格,可以将每个表格保存到Excel的不同工作表中:
import tabula import pandas as pd # 读取所有表格 df_list = tabula.read_pdf("files/Seniority List 2018 19.pdf", pages=1, multiple_tables=True) # 写入Excel的不同工作表 with pd.ExcelWriter('files/excel.xlsx') as writer: for idx, table in enumerate(df_list, start=1): table.to_excel(writer, sheet_name=f"表格{idx}", index=False)
额外说明
- 显式指定
multiple_tables=True可以更清晰地表明需要提取页面中的多个表格(该参数默认值为True)。 - 添加
index=False可以避免将DataFrame的行索引写入Excel文件,让输出的表格更符合预期格式。
内容的提问来源于stack exchange,提问作者daylyroppo3
相关产品推荐
相关产品推荐

