python提取pdf表格数据并保存到excel(从0到1)

win11安装python

  1. python.org 下载安装包(64位操作系统,所以选了3.7.4 windows x86-64 executable installer下载并安装)
  2. win+r 打开cmd(用户权限打开的)输入python检验是否安装成功
  3. pip --version

安装pdfplumber

  1. pip install pdfplumber(报错)
    在这里插入图片描述

  2. pip install --upgrade pip
    在这里插入图片描述
    此时怀疑了一下是否由于win11用户权限导致上述错误,找到保姆教程看了一下,发现大佬的环境变量在系统变量,而我的环境变量在用户变量。犹豫了一下是否需要将系统变量path配一下,突然想到用管理员运行cmd试试

  3. 管理员运行cmd
    在这里插入图片描述

  4. pip install xlwt

编辑器

  1. 打开IDLE
  2. File>New File
  3. File>Save As 将文件保存到test.pdf同一目录下
  4. Run>Run Module

Test PDF

copy一下大佬代https://blog.csdn.net/LHJCSDNYL/article/details/124207996
eg1

import pdfplumber
# 打开pdf文件,有密码加入password参数
pdf_info =pdfplumber.open(r'test.pdf')
meta_data = pdf_info.metadata  # pdf的基础信息
page_con = len(pdf_info.pages)  # 获取pdf的总页数
print('pdf文件的基础信息:\n', meta_data)
print('pdf共%s页' % page_con)

打印出文件的基础信息

eg2

import pdfplumber
# extract_table()用法
with pdfplumber.open(r'test.pdf') as pdf_info:  # 打开pdf文件
    for page in pdf_info.pages:
        page_one_table = page.extract_table()
        print(page_one_table)
        if (page_one_table is not None):
            for row in page_one_table:
                print(row)

打印出表格数据

数据导出到EXCEL

import pdfplumber
import xlwt
#from openpyxl import Workbook
# 1. 把所有页的数据存在一个临时列表中
with pdfplumber.open(r'test.pdf') as pdf_info:  # 打开pdf文件
    item = []
    for page in pdf_info.pages:
        page_one_table = page.extract_table()
        if (page_one_table is not None):
            for row in page_one_table:
                item.append(row)
    # 2. 创建Excel表对象
    # 调用xlwt模块中的Workbook方法来创建一个excel表格类型文件,其中的第一个参数是设置数据的编码格式,这里是’utf-8’的形式,style_compression设置是否压缩,不是很常用,赋值为0表示不压缩。
    workbook = xlwt.Workbook(encoding='utf-8',style_compression=0)
    # 3. 新建sheet表
    #用book对象调用add_sheet方法来建立一张sheet表,这里面的第一个参数很明显就是设置sheet表格的名称,第二个参数cell_overwrite_ok用于确认同一个cell单元是否可以重设值,这里赋值为True就表示可重设值。
    worksheet = workbook.add_sheet('sheet1',cell_overwrite_ok=False)
    for i in range(0, len(item[0:])):
        data = item[0:][i]
        for j in range(0, len(data)):
            worksheet.write(i, j, data[j])
    # 7. 保存文件分两种格式
    workbook.save('test.xls')

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值