这几天想统计一下《中国人文社会科学期刊 AMI 综合评价报告(2018 年):A 刊评价报告》中的期刊,但是只找到了该报告的PDF版,对于表格的编辑不太方便,于是想到用Python将表格转成Excel格式。

看过别人写的博客,发现Python解析PDF有以下四种方式:
-pdfminer:擅长文字的解析,把表格解析成普通的文本,没有格式;
-pdf2html:把pdf解析成html,但html的标签并没有规律,解析一个表格还可以,多个表格的话不太好提取;
-tabula:对于简单的表格,即单元格中没有换行的,表头表尾形式不复杂的,使用比较方便。但是电脑需要Java环境;
-pdfplumber:是一个可以处理pdf格式信息的库。可以查找关于每个文本字符、矩阵、和行的详细信息,也可以对表格进行提取并进行可视化调试。

本文采用pdfplumber库读取PDF中的表格,运行环境:Python3.5.2,Anaconda4.2.0。首先简单介绍一下pdfplumber库:
-pdfplumber.pdf中包含了.metadata和.pages两个属性:
.metadata是一个包含pdf信息的字典。
.pages是一个包含页面信息的列表。

-pdfplumber.page的类中包含的主要的属性:
.page_number 页码。
.width 页面宽度。
.height 页面高度。
.objects/.chars/.lines/.rects 这些属性中每一个都是一个列表,每个列表都包含一个字典,每个字典用于说明页面中的对象信息, 包括直线,字符, 方格等位置信息。

-一些常用的方法:
.extract_text() 用来提页面中的文本,将页面的所有字符对象整理为的那个字符串。
.extract_words() 返回的是所有的单词及其相关信息。
.extract_tables() 提取页面的表格。
.to_image() 用于可视化调试时,返回PageImage类的一个实例。

import pdfplumber
import pandas as pdpath = 'test.pdf'
pdf = pdfplumber.open(path)
i=1
#writer=pd.ExcelWriter('output.xlsx')
df=pd.DataFrame(columns=['序号','刊名','主办单位','等级'])
sheetname=['考古文博','历史学','马克思主义理论','民族学与文化学','文学-外国文学','文学-中国文学','艺术学','语言学','哲学','宗教学','法学','管理学','环境科学','教育学','经济学-财政科学','经济学-工业经济','经济学-金融','经济学-经济管理','经济学-经济综合','经济学-贸易经济','经济学-农业经济','经济学-世界经济','人文地理学','社会学','体育学','统计学','图书馆情报与档案学','心理学','新闻学与传播学','政治学-国际政治','政治学-中国政治','综合-高校综合性学报','综合-综合性人文社科期刊']##由于存在一个表格跨页的情况,先将所有表格存放在一个DataFrame中,再根据序号拆分。for page in pdf.pages[17:59]:print (page)# 获取当前页面的全部文本信息,包括表格中的文字# print(page.extract_text())for table in page.extract_tables():#print(table)df=df.append(pd.DataFrame(table[1:],columns=table[0]),ignore_index=True)
print (df)writer=pd.ExcelWriter('output3.xlsx')
new_df=pd.DataFrame()
j=1
index=[]
#记录序号==1的行索引,用于后面的表格拆分
for i in range(len(df)):if df.ix[i,0]=='1':index.append(i)print ("################")
index.append(len(df))
#print (index)#按行索引将内容切片并逐个添加到表中
for t in range(len(index)-1):new_df=df.ix[index[t]:index[t+1]-1,:]#print (new_df)new_df.to_excel(writer,sheet_name=sheetname[t],encoding='gb2312',index=None)
writer.save()
pdf.close()
print('finished')

最终保存为Excel。

用python 将PDF中的表格转化为Excel相关推荐

  1. PDF中的表格导入到Excel(分割)

    PDF中的表格导入到Excel(分割) 1,把pdf打开,选择文本内容,复制,粘贴到表格中,可效果..... 2,进行分列,大家仔细看表格,发现.... 1,选中要拆分的列, 2,切换到数据菜单,点击 ...

  2. Python提取pdf中的表格数据(附实战案例)

    14天阅读挑战赛 今天给大家介绍一个Python使用工具,那就是从pdf文件中读取表格数据,主要用到第三方库 pdfplumber. pdfplumber简介 pdfplumber是一款基于pdfmi ...

  3. 如何将word中的表格转化为excel中?

    1.复制word中的表格 2.到excel中右击选择"选择性粘贴",选择"无文本格式" 3.完成

  4. UIPATH 结合 Python 识别 PDF 中的表格

    工作中遇到的需求: 采购文档在用友U8中打印出来后, 识别表格并把表格内容附在邮件内容中发送给对应采购人员 摘录一下关键点. 首先, 我用的 Python 脚本如下: import pdfplumbe ...

  5. PDFPlumber使用入门+python实现PDF中表格转化为Excel的方法

    PDFPlumber使用入门:https://blog.csdn.net/weixin_48629601/article/details/107224376 python实现PDF中表格转化为Exce ...

  6. python pdf 数据转excel 表格_python实现PDF中表格转化为Excel的方法

    这几天想统计一下<中国人文社会科学期刊 AMI 综合评价报告(2018 年):A 刊评价报告>中的期刊,但是只找到了该报告的PDF版,对于表格的编辑不太方便,于是想到用Python将表格转 ...

  7. python分析pdf年报 货币现金_如何用Python从大量pdf 中提取表格中的数据进行分析?...

    根据一楼答案@森林的建议 说说我的处理经验 我也是借助开源项目tabula,不得不说tabula的功能确实很强大. 我是用Python来处理数据,但是没有用tabula-py,因为表格跨列跨行等情况比 ...

  8. python提取pdf中的图片_提取PDF中内容(表格篇)

    由于(质量优质)PDF较好的阅读性,工作当中难免有文件使用PDF格式保存和流通的.但是由于PDF过于追求视觉的享受,所以在编辑其内容元素上相较微软office系列的确困难.不时会碰到看的到内容却难以直 ...

  9. python抓取pdf中的表格转换为csv表格汉语站名批量变英文(拼音)名

    1, PDF转csv import tabulafrom tabula import read_pdf from tabulate import tabulate import pandas as p ...

最新文章

  1. struts2中使用标签操作静态方法等
  2. 个人前端学习路线图与github优秀前端开发者的路线图推荐
  3. Keep 再融资以后
  4. R语言dplyr包使用select函数通过索引查询或者排除数据列实战(Select Columns by Index)
  5. IDA中的SIG应用
  6. vuecli3修改html,详解vue-cli3多页应用改造
  7. VMware vSphere Client安装Centos7
  8. 【译】Everything You Need to Know About Decentralized AI
  9. oracle normal bitmap,深入解析Oracle ASSM结构之Level 1 Bitmap Block
  10. live555 windows下编译以及修订
  11. 贵阳中职计算机学什么区别,贵阳中职计算机专业
  12. 网络协议从入门到底层原理(8)HTTPS(成本、通信过程、TLS1.2的连接,配置服务器HTTPS)
  13. python下载官网-Python2.7.10
  14. java 文件解签加签_将更改的文件移到另一个分支进行签入
  15. ceb怎么转换成word_关于把CEB文件转换成word文档!!!
  16. 一小时入门proteus使用教程
  17. win10 自动修复不了无限循环的问题
  18. java线程安全的计数器_Java线程安全计数器的简单代码示例
  19. 信息化项目中服务器费用占比,企业信息化投入是什么 它的占比是多少
  20. solidity学习-投票

热门文章

  1. 硬件常用测试软件整理,方便大家下载
  2. 华清远见-重庆中心-前端技术阶段
  3. 山东理工大学计算机组成原理试题,山东理工大学成人高等教育计算机组成原理试卷(共3份)...
  4. linux查看u盘的分区,linux磁盘管理——识别和使用u盘
  5. persevere的用法_persevere是什么意思_persevere怎么读_persevere翻译_用法_发音_词组_同反义词_坚忍_熬住-新东方在线英语词典...
  6. 2018今日头条秋招 笔试 (2017/09/10)
  7. 裁员滚滚,这个冬天有点冷 | 程序员有话说
  8. 百度前端技术学院--零基础--第二天 给自己做一个在线简历吧
  9. linux pl320 mbox控制器驱动分析-(3) pl320驱动代码分析
  10. 数据库中exists的用法