当在pdf上看到自己想用的表格,却无法将其复制下来的时候,只能默默地打开excel对照着pdf表格的形式敲打出来,既费时又费力!这里介绍如何用python程序将pdf上的表格自动转化为excel表!
1.使用的库
简单介绍一下要使用的库:pdfplumber 和xlwt
1.pdfplumber
pdfplumber使用来解析pdf的文字与表格。该库与之前一篇文章python办公自动化——PDF转Word所使用的pdfminer库类似,都是从pdf里面提取信息。但不同的是pdfminer侧重提文字,对表格的提取不是很好,而pdfplumber 对提取表格的支持比较好。
请点击输入描述 2.xlwt
xlwt是python用来操作excel的一个库,可以用它对excel进行创建表单、写入指定单元格、指定单元格样式等人工实现的功能等一系列操作。
2.pdf转excel
话不多说,接下来就用这两个库完成pdf转excel的操作。
思路:
pdfplumber获取当前页面的全部文本信息,包括表格的文字。在当前页信息中通过extract_tables()方法提取表格。将内容写入到excel中。代码:
import pdfplumber
import xlwt
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('Sheet1')
i = 0
pdf = pdfplumber.open("1.pdf")
print('开始读取数据')
for page in pdf.pages:
for table in page.extract_tables():
for row in table:
for j in range(len(row)):
sheet.write(i, j, row[j])
i += 1
pdf.close()
workbook.save('C:/Users/Administrator/Desktop/result.xls')
print('保存成功!')
在代码中最主要的就是for循环,要获取到每一个页面,并对每一个页面里面的信息进行提取。这里主要用extract_table()方法对表格信息提取
主要的循环读取写入 这里用于测试的是一个只包含表格的pdf,里面包含英文字母和中文字母。
测试pdf 在经过程序转换以后输出到excel表格中的样子如下:
转换结果 可以看到pdf表格中,每一行一列不管是英文字母还是汉字都转换了出来,效果很是不错,速度也比较快。
python还有不少处理办公的技巧,省时省力,以后的章节中会和大家继续分享,欢迎留言讨论转载请注明出处(百家号:戏说编程)