当前位置: 首页 > news >正文

Python自动化办公:批量提取PDF中的表格到Excel

在现代办公环境中,处理大量的PDF文件并提取其中的表格数据是一项常见而繁琐的任务。手动复制粘贴不仅耗时耗力,还容易出错。Python作为一种功能强大的编程语言,提供了丰富的工具包,可以高效地解决这一问题。本文将介绍如何使用Python批量提取PDF中的表格数据,并将其写入Excel文件,帮助你节省宝贵的时间。

所需工具和库

1、os:用于文件和目录操作。

2、pdfplumber:用于从PDF文件中提取表格数据。

3、openpyxl:用于创建和操作Excel文件。

步骤详解

1、获取PDF文件列表

首先,我们需要获取指定文件夹下所有PDF文件的列表。这里使用Python的内置模块os来实现。

import os  # 指定PDF文件夹路径  
path = "D:\\学习资料\\Python\\读取PDF\\账单"  # 获取该路径下所有的文件名称  
all_items = os.listdir(path)  # 打印文件名称,用于验证  
print(all_items)

2、遍历文件列表,读取PDF文档

接下来,遍历文件列表,使用pdfplumber模块读取每个PDF文件中的表格数据。

import pdfplumber  # 创建一个新的Excel工作簿  
new_wb = openpyxl.Workbook()  
sheet = new_wb["Sheet"]  # 遍历文件列表  
for item in all_items:  if item.endswith(".pdf"):  # 确保是PDF文件  pdf_path = os.path.join(path, item)  pdf = pdfplumber.open(pdf_path)  # 遍历PDF页面  for page in pdf.pages:  # 提取页面中的所有表格(这里假设只提取第一个表格)  table = page.extract_tables()[0]  # 遍历表格中的行数据,并写入Excel  for row in table:  sheet.append(row)  # 格式化输出提取完成的信息  print(f"{item} 提取完成")

3、保存Excel文件

最后,将包含所有表格数据的Excel文件保存到指定路径。

# 将工作簿保存到指定路径  
new_wb.save("D:\\学习资料\\Python\\读取PDF\\账单\\账单合集.xlsx")
注意事项

1、PDF表格的格式pdfplumber在提取表格时,主要依赖表格的边框。如果PDF中的表格没有边框,pdfplumber可能无法正确识别。

2、多表格处理:如果PDF页面中包含多个表格,extract_tables()方法会返回一个包含所有表格的列表。你可以根据需要选择提取哪个表格,或者处理所有表格。

3、异常处理:在实际应用中,建议添加异常处理代码,以处理可能出现的文件读取错误、表格提取错误等问题。

4、性能优化:对于包含大量PDF文件的文件夹,可以考虑使用多线程或异步编程来提高处理速度。

总结

通过Python的ospdfplumberopenpyxl模块,我们可以轻松实现批量提取PDF中的表格数据,并将其写入Excel文件。这一自动化流程不仅提高了工作效率,还减少了人为错误。对于需要处理大量PDF文件的办公人员来说,这一技能无疑将大大节省时间和精力。

http://www.lryc.cn/news/461144.html

相关文章:

  • selenium有多个frame页时的操作方法(5)
  • 谷歌外链的周期性维护!
  • CATIA软件许可管理最佳实践
  • 大华智能云网关注册管理平台 SQL注入漏洞复现(CNVD-2024-38747)
  • 什么是思维导图,手把手教你做经典思维导图
  • 使用GSEA读‘gmt文件‘时最后一行未遂问题解决
  • C++中vector常用函数总结
  • 手撕数据结构 —— 队列(C语言讲解)
  • Java知识巩固(五)
  • C# 中 yield关键字的使用
  • YoloDotNet 的基本使用方法详解
  • 0x12 Dapr Dashboard configurations 未授权访问漏洞 CVE-2022-38817
  • Android activity 启动流程
  • 使用 Go 语言实现 WebSocket的核心逻辑
  • Linux下的杀毒软件介绍
  • JSONP详解
  • Leetcode—1115. 交替打印 FooBar【中等】(多线程)
  • Visual Studio Code基础:使用debugpy调试python程序
  • 超全!一文详解大型语言模型的11种微调方法
  • C 主要函数解析
  • vue3学习:数字时钟遇到的两个问题
  • 吴恩达深度学习笔记:卷积神经网络(Foundations of Convolutional Neural Networks)3.7-3.8
  • 【Linux】最基本的字符设备驱动
  • 利用 Llama 3.1模型 + Dify开源LLM应用开发平台,在你的Windows环境中搭建一套AI工作流
  • Docker常用命令分享二
  • 【一步步开发AI运动小程序】二十、AI运动小程序如何适配相机全屏模式?
  • [Java基础] 运算符
  • [001-02-018].第05节:数据类型及类型转换
  • Netty基础
  • 602,好友申请二:谁有最多的好友