2401_84482571 2024-06-06 13:14 采纳率: 66.7%
浏览 12
已结题

pdf提取表格到excel,输出有错,哪里的问题

img


是不是代码写错了呢,到底是哪里出了问题呢,提取pdf表格到excel上,运行提示错误

  • 写回答

3条回答 默认 最新

  • 阿里嘎多学长 2024-06-06 13:14
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    从提供的代码片段和错误信息来看,问题出在 workbook 这个变量的使用上。错误提示 TypeError: 'module' object is not callable 表明 workbook 被当作一个函数来调用了,但实际上它应该是 openpyxl 模块中的一个类。这里的问题很可能是 workbook 变量被错误地赋值为 openpyxl 模块本身,而不是 Workbook 类的实例。

    下面是代码中可能出现问题的几个地方以及如何修复它们:

    1. 导入模块时的拼写错误

      • 代码中 from openpyxl import workbook 应该改为 from openpyxl import Workbook(注意首字母大写)。
    2. 创建工作簿实例时的错误

      • 代码中 workbook = workbook 这一行实际上没有做任何事情,因为左边的 workbook 被赋值为了 openpyxl 模块,而不是 Workbook 类的实例。正确的做法是使用 Workbook() 来创建一个新的工作簿实例。
    3. 提取表格数据并保存到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" 是正确的文件路径。
    • Excel文件的扩展名应该是 .xlsx 而不是 .xls

    参考资料

    以上修复后的代码应该能够解决你遇到的问题。如果还有其他问题或需要进一步的帮助,请随时提问。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月14日
  • 已采纳回答 6月6日
  • 创建了问题 6月6日