
是不是代码写错了呢,到底是哪里出了问题呢,提取pdf表格到excel上,运行提示错误
以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:
从提供的代码片段和错误信息来看,问题出在 workbook 这个变量的使用上。错误提示 TypeError: 'module' object is not callable 表明 workbook 被当作一个函数来调用了,但实际上它应该是 openpyxl 模块中的一个类。这里的问题很可能是 workbook 变量被错误地赋值为 openpyxl 模块本身,而不是 Workbook 类的实例。
下面是代码中可能出现问题的几个地方以及如何修复它们:
导入模块时的拼写错误:
from openpyxl import workbook 应该改为 from openpyxl import Workbook(注意首字母大写)。创建工作簿实例时的错误:
workbook = workbook 这一行实际上没有做任何事情,因为左边的 workbook 被赋值为了 openpyxl 模块,而不是 Workbook 类的实例。正确的做法是使用 Workbook() 来创建一个新的工作簿实例。提取表格数据并保存到Excel:
pdfplumber 正确地提取了表格数据,并且 openpyxl 被用来创建和保存Excel文件。修复后的代码可能如下所示:
import pdfplumber
from openpyxl import Workbook # 注意这里首字母大写
# 打开PDF文件
with pdfplumber.open("外协费-晋华航空(99950).pdf") as pdf:
# 获取第9页
first_page = pdf.pages[9]
# 提取表格数据
table = first_page.extract_table()
# 创建一个新的Excel工作簿
workbook = Workbook()
# 选择活动的工作表
sheet = workbook.active
# 将PDF表格数据添加到Excel工作表中
for row in table:
sheet.append(row)
# 保存Excel文件
workbook.save(filename='luomiqi.xlsx') # 注意文件扩展名应为.xlsx
注意:
"外协费-晋华航空(99950).pdf" 是正确的文件路径。.xlsx 而不是 .xls。参考资料:
pdfplumber 官方文档:https://github.com/jsvine/pdfplumberopenpyxl 官方文档:https://openpyxl.readthedocs.io/en/stable/以上修复后的代码应该能够解决你遇到的问题。如果还有其他问题或需要进一步的帮助,请随时提问。