在现代办公环境中,处理大量的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的os
、pdfplumber
和openpyxl
模块,我们可以轻松实现批量提取PDF中的表格数据,并将其写入Excel文件。这一自动化流程不仅提高了工作效率,还减少了人为错误。对于需要处理大量PDF文件的办公人员来说,这一技能无疑将大大节省时间和精力。