Hi~大家好!
不知大家在工作中有没有过提取pdf表格数据的经历,按照普通人的思维,提取pdf的表格数据的方法可能会选择复制粘贴,但这是一个相当繁杂且重复的工作。而今天我们会讲解如何用python和excel来提取pdf的表格数据,看二者哪个更为方便!
Excel
本次依然使用excel的神器power qoery编辑器
,而接下来的操作其实和合并工作表差不多,让我们来看看它是怎么操作的!
excel提取pdf表格数据最好用office365版本,office2016版本的会没有来自PDF
这个选项,且不会出现导航器界面,它会连文本一起导入,无法直接选择需要导入的表格,但他可以进入power qoery编辑器
时进行筛选出Table类型的表格
!二者差别只在于前面几步,看完后有疑问的可以在后台提问哦!
office365安装包(附教程)获取可在公众号后台发送:365
获取!
office2016版本
这里先说下office2016版本的前面操作,从文件
导入PDF文件:
这里下面需要选择所有文件
,然后导入pdf文件;然后会进入power qoery编辑器
,需要筛选出Table类型的表格
,然后office365到将查询追加为新查询
这一步时,2016版本和365版本的一样:
导入pdf文件:①点击【数据
】→②点击【获取数据
】→③点击【来自文件
】→④选择【来自PDF
】
在弹出的【导入数据】窗口中选择PDF文件:
在弹出的【导航器
】窗口中:①勾选【选择多项
】→②在【pdf文件
】下选择【Table类型的表格
】→③查看数据,看是否为你需要的→④点击【转换数据
】,跳转至power Query编辑器界面。
接下来把提取出来的表格进行合并。在弹出的power Query编辑器界面中:①选择【主页
】→②单击【追加查询下拉箭头
】→③选择【将查询追加为新查询
】
在弹出的【追加
】窗口中:①选择【三个或更多表
】→②在【可用表
】中,把【需要合并的工作表
】添加至【要追加的表
】中→③调整【工作表顺序
】→④点击【确定
】
修改列名称,最后:①单击【主页
】→②单击【关闭并上载
】下拉箭头→③单击【关闭并上载
】
效果展示:
Python
python若想将一份PDF文件的表格导出到excel,可以用pdfplumber
实现,安装用pip命令安装即可:
pip install pdfplumber
导入需要用到的模块:
import pdfplumber
import pandas as pd
提取单个表格:
pdf = pdfplumber.open(r'D:\办公自动化\wb1.pdf')
page = pdf.pages[0]
pprint.pprint(page.extract_table())
结果展示,产生的是一个二级嵌套列表:
这里需要注意的是:page = pdf.pages[0]
这一行,它表示提取pdf文件中第几页;以及extract_table
,它默认提取该页面第一个表格,如果该页面有多个表格要提取,则需要在extract_table
加上s
,表示提取多个表格。
提取多个表格:
pdf = pdfplumber.open(r'D:\办公自动化\wb1.pdf')
page = pdf.pages[0]
pprint.pprint(page.extract_tables())
产生的是一个三级嵌套列表:
那如果要保存多页中的多个表格该怎么做?其实建立个for循环就可以了:
pdf = pdfplumber.open(r'D:\办公自动化\wb1.pdf')
for i in range(3):
page = pdf.pages[i] # 传入循环值
datalist = page.extract_tables()
# 提取的数据因为是三级嵌套列表,所以需要进行循环提取
for o in datalist:
for p in o:
# 用pandas保存为csv格式
data = pd.DataFrame({'排名': [p[0]], '标题': [p[1]], '热度': [p[2]], '时间': [p[3]]})
df = pd.concat([df, data])
df.to_csv('wb.csv', encoding='utf-8', index=False)
效果展示:
结语
二者的操作并不是很难,python代码可以重复利用,而excel需要重复操作;python代码虽然会因为PDF文件中的格式以及要提取内容复杂,比如哪个表格不需要之类的问题,而需要更改,但更改的会比较少。虽然需要性重复操作较多,但在提取复杂的表格时,我更建议使用excel。
本文分享自 Python与Excel之交 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!