网站首页 > 博客文章 正文
继上期成功运用Python的pytesseract模块完成了图像转Excel的功能之后,今天我们聚焦于另一种常见的文档格式PDF,看看如何利用Python中的pdfplumber库将其高效地转换为Excel格式。以下是具体的操作流程及涉及的关键技术点:
关键技术点
? 依赖安装:确认环境中已安装pdfplumber库,若未安装,可使用Python包管理器pip执行pip install pdfplumber命令进行安装。
? 模块导入:在编写Python脚本时,引入所需的第三方库,主要包括pdfplumber以处理PDF文件,以及pandas用于数据处理和生成Excel文件。
? 核心功能函数:定义一个名为pdftoexcel的函数,它接收PDF文件路径和目标Excel文件路径作为参数。
? PDF解析:在函数内部,使用pdfplumber.open()打开指定PDF文件,建立与文档的连接。随后,遍历文档中的所有页面。
? 表格抽取:对每个页面调用page.extract_table()方法,此方法基于PDF结构智能识别并提取表格数据,返回一个表示表格内容的二维列表。
? 数据整合:将各页提取到的表格数据合并到一个列表中,然后利用pandas.DataFrame构造一个便于操作和存储的数据结构。
? Excel导出:运用workbook.save(saveName+'.xls')方法,将整理后的数据写入指定的Excel文件,完成转换过程。
综上所述,pdfplumber库凭借其对PDF内表格的精准识别与提取能力,结合pandas的便捷数据处理功能,成为实现Python环境下PDF转Excel任务的理想选择。通过遵循上述步骤编写脚本,您可以轻松应对各类PDF文档到Excel的自动化转换需求。
主要代码
def pdftoexcel(path,saveName):
workbook = xlwt.Workbook() # 定义workbook
sheet = workbook.add_sheet('Sheet1') # 添加sheet
i = 0 # Excel起始位置
pdf = pdfplumber.open(path)
for page in pdf.pages:
for table in page.extract_tables():
for row in table:
print(row)
for j in range(len(row)):
if row[j] is None:
row[j]='未能识别';
sheet.write(i, j, row[j])
i += 1
pdf.close()
# 保存Excel表
workbook.save(saveName+'.xls')
为了方便大家拿来就能使用,小妖在这边直接打包成exe文件。
点击选择需要转换的pdf文件,小工具自动转换成Excel文件,实现效果如下:
原pdf文件
转换成excel文件
如有需要的同学,可关注私信给我获取可执行小工具直接一键转换pdf转excel。
感谢大家的支持,希望得到大家的点赞关注,我们下期见。
猜你喜欢
- 2024-10-24 python处理excel文件03:xlwt模块写入excel文件
- 2024-10-24 经验 | Python 读写 Excel 文件第三方库汇总
- 2024-10-24 python实现爬取豆瓣电影Top250(python爬取豆瓣电影的流程)
- 2024-10-24 Python如何操作Excel,xlrd和xlwt类库的使用
- 2024-10-24 如何用Python读写Excel文件?最便捷的3种方式
- 2024-10-24 安全服务日常工作之大量端口状态扫描
- 2024-10-24 Python操作Excel库xlrd与xlwt常用操作详解
- 2024-10-24 Python读写Excel表格,就是这么简单粗暴又好用
- 2024-10-24 Python学习之爬取网页信息(python爬取网页数据步骤)
- 2024-10-24 pandas + xlwt制作格式化报表遇到的两个问题
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)