分享

读取PDF中的表格写入EXCEL?30行代码搞定

 O听_海_轩O 2020-07-24

办公自动化系列+1

现在,各类数据分析的书籍,都可以在网上找到PDF版本;

同时,百度文库、各类数据统计文库、行业研究等众多论文报告,是通过PDF的形式去展示输出的;

但是,令人都头疼的是,各类数据分析书中,PDF版本中的表格数据,我们想转化成自己的数据库文件,或者EXCEL文件,却是很难编辑;

今天,就给大家解决这个问题,利用Python,将PDF中的表格和数据读取出来,并写入EXCEL中保存到本地;

先上代码,代码只有30行;

源PDF文件中的表格数据:

代码:

# -*- coding: utf-8 -*-
'''
请确保你在运行这个代码的时候,已经安装了pdfplumber库
如果没有安装,请在[附件-命令提示符]下输入:
pip install pdfplumber
'''


import pdfplumber
import xlwt

# 定义保存Excel的位置
workbook = xlwt.Workbook()  #定义workbook
sheet = workbook.add_sheet('Sheet1')  #添加sheet
i = 0 # Excel起始位置

path = input('请输入PDF文件位置:')
#path = 'aaaaaa.PDF'  # 导入PDF路径
pdf = pdfplumber.open(path)
print('\n')
print('开始读取数据')
print('\n')

for page in pdf.pages:
    # 获取当前页面的全部文本信息,包括表格中的文字
    # print(page.extract_text())
    for table in page.extract_tables():
        # print(table)
        for row in table:
            print(row)
            for j in range(len(row)):
                sheet.write(i, j, row[j])
            i += 1
        print('---------- 分割线 ----------')

pdf.close()

# 保存Excel表
workbook.save('保存路径/文件名.xls')
print('\n')
print('写入excel成功')
print('保存位置:')
print('保存路径/文件名.xls')
print('\n')
input('PDF取读完毕,按任意键退出')

最终导出的EXCEL文件:

简简单单30行代码,就将PDF中的表格数据读取出来,并写入EXCEL啦;

拓展:

1、pdfplumber简介

Pdfplumber是一个可以处理pdf格式信息的库。可以查找关于每个文本字符、矩阵、和行的详细信息,也可以对表格进行提取并进行可视化调试。

2、pdfplumber安装

安装直接采用pip即可。命令行中输入

pip install pdfplumber

3、简单使用

import pdfplumber
with pdfplumber.open('path/to/file.pdf'as pdf:
    first_page = pdf.pages[0]
    print(first_page.chars[0])

pdfplumber.pdf中包含了.metadata和.pages两个属性。

  • .metadata是一个包含pdf信息的字典。
  • .pages是一个包含页面信息的列表。

每个pdfplumber.page的类中包含了几个主要的属性。

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

4、一些常用的方法

  • .extract_text() 用来提取页面中的文本,将页面的所有字符对象整理为的那个字符串
  • .extract_words() 返回的是所有的单词及其相关信息
  • .extract_tables() 提取页面的表格

python自动化办公宝典

其中 《python自动化办公宝典》 共包含六个章节97页,不仅有详细的代码解释,而且还有详细的图文说明,通俗易懂,让你轻松完成办公自动化。

  • python使用openpyxl操作excel;
  • python使用PyPDF2和pdfplumber操作pdf;
  • python使用python-docx操作word;
  • python使用python-pptx操作PPT;
  • python如何自动收发邮件;
  • python制作电话号码归属地查询工具;

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多