【Python】如何将一批PDF数据汇总成Excel列表?

您所在的位置:网站首页 几个表格数据汇总到一个表格里 【Python】如何将一批PDF数据汇总成Excel列表?

【Python】如何将一批PDF数据汇总成Excel列表?

#【Python】如何将一批PDF数据汇总成Excel列表?| 来源: 网络整理| 查看: 265

在当今电脑化(或无纸化)的办公环境中,由于工作需要,经常需要在不同的办公文件之间传递一些资料。如果需要介绍简报(.ppt),可能需要将word的部分单词复制到ppt;如果需要分析论文中的表格数据,可能需要将pdf转为excel。但是,如果只是转换了几个文件,可以用复制粘贴功能简单处理,但如果是批量转换,为了避免重复劳动和容易出错,使用工具批量转换是正确的工作方式.

想象一个情况。企业在办理讲座活动时,向各受邀单位发出申请表。多份申请表回收时,需要一份汇总表,进一步了解参加讲座的学生的背景/企业宝号/职称。下面是一个例子。在示例之前,先简单描述一下完成工作的工具结构,如下所示。

1\。在Python中,处理PDF常用的有两个安装包,pdfminer3k和pdfplumber。区别简要描述如下:

pdfminer3k:将PDF转换为纯文本,常用于自然语言分析。

pdfplumber:可以按页数处理PDF文件,同时将PDF中的表格输出成列表。

2\。另外,对于PDF读取结果,Python需要将结果写入Excel文件,可以通过操作excel安装包openpyxl进行处理。

3\。为了匹配自动找到的pdf文件数量,需要借用安装包和os来操作文件和目录系统。

批量登记表样本(.pdf)转换为excel文件如下:

一个。申请表的原始pdf截图如下。有三个pdf文件。

湾。几个主要的代码段描述如下:

1、为了应对未知数量的文件,实现批量转换,使用os指令对文件夹中的目标文件(.pdf)进行过滤,如#find文件夹中PDF文件的代码片段。

2.将pdf导入python,将每个pdf文件中的姓名/标题/手机/邮箱数据提取转换成列表,如#pdf导入的代码段。

将提取的数据保存到 excel 文件中,其中包含定义表和标题名称。比如#打开空白的excel,保存成pdf,读取表格数据的代码段。

导入 pdfplumber

from openpyxl import Workbook #获取xlsx的安装包

导入我们

列出路径中的文件

文件_list u003d os.listdir()

在文件夹中查找.pdf文件

pdf_file u003d list() # 建立空列表

对于文件\列表中的文件名:

sub\name u003d 文件名.split('.')[1]

如果 sub_name u003du003d 'pdf':

pdf_file.append(文件_name)

pdf 导入

pdf_table u003d 列表()

名称 u003d 列表()

标题 u003d 列表()

移动 u003d 列表()

电子邮件 u003d 列表()

for i in range(len(pdf\file)):

pdf u003d pdfplumber.open(pdf_file[i])

page u003d pdf.pages[0] # 获取 page.1

pdf_table.append(page.extract_table())

如果 pdf_table[i][2][1] !u003d '':

name.append(pdf_table[i][2][1])

title.append(pdf_table[i][3][1])

mobile.append(pdf_table[i][4][1])

email.append(pdf_table[i][5][1])

打开空白的excel,保存成pdf读取表格数据

工作簿 u003d 工作簿()

工作表 u003d workbook.active

sheet.title u003d "注册摘要"

设置 A1:姓名 B1:职务 C1:手机 D1:E-mail

row0 u003d [“全名”、“职位”、“手机”、“邮箱”]

sheet.append(row0)

for i in range(len(name)):

sheet.cell(rowu003d2 + i, columnu003d1).value u003d name[i]

sheet.cell(rowu003d2 + i, columnu003d2).value u003d title[i]

sheet.cell(rowu003d2 + i, columnu003d3).value u003d mobile[i]

sheet.cell(rowu003d2 + i, columnu003d4).value u003d email[i]

workbook.save(filenameu003d"注册列表.xlsx")

C。输出结果如下图所示。

-----如果文章对你有帮助,打开微信扫一扫,请作者喝杯咖啡-----



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3