专业的编程技术博客社区

网站首页 > 博客文章 正文

一键转换PDF为excel 轻松实现办公自动化

baijin 2024-10-24 08:43:26 博客文章 8 ℃ 0 评论

继上期成功运用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。

感谢大家的支持,希望得到大家的点赞关注,我们下期见。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表