栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

利用python将PDF转为Excel并去掉换行符

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

利用python将PDF转为Excel并去掉换行符

PDF转Excel

文章目录
  • PDF转Excel
  • 前言
  • 一、PDF转Excel
  • 二、去掉Excel的换行符
  • 不完善的地方


前言

突然来的任务,时间紧,PDF内容为表格,有水印


一、PDF转Excel

提示:我比较笨,所以分了两步完成,第一步转为Excel,第二步再去掉换行符

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Nov  5 12:19:21 2021
@author: v
"""
from openpyxl import load_workbook
import camelot.io as camelot
import os
import cv2
import xlwt
import pdfplumber
  1. 尝试Camelot,在anaconda中直接pip install camelot,得到无序csv/xlsx表格
  2. 安装pdfplumber库,anaconda中pip install pdfplumber这个地方忘记了,但这个库即使安装成功也会报错如下,自己的解决方法是,将路径改为同一路径,pip uninstall pdfplumber 后重新安装,重启Spyder后不报错,很邪乎
AttributeError: module 'pdfminer' has no attribute 'pdftypes'

下方为导入,就直接改的大佬的代码,好用

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

path = "a.PDF"  # 导入PDF路径
pdf = pdfplumber.open(path)

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
        print('一页完成')
pdf.close()
workbook.save('PDFresult_ee.xls')
二、去掉Excel的换行符

这里是我做的无用功,理由是上面的workbook.save只能保存xls的老式Excel,但openpyxl又只能识别xlsx,报错多次后,我决定手动改成xlsx再重新搞个py文件,不怕麻烦


这里也是直接套用大佬代码,美滋滋

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Nov  5 16:16:45 2021
@author: v
"""

from openpyxl import load_workbook
import camelot.io as camelot
import os
import cv2
import xlwt
import pdfplumber

# 定义保存Excel的位置
from openpyxl import load_workbook
file = "PDFresult_ee.xlsx"  #要处理的文件路径
wb = load_workbook(file)  #加载文件
ws = wb.active

for i in range(1,ws.max_row+1):
    for j in range(1,ws.max_column+1):
        old = ws.cell(i, j).value
        if old is not None:
            ws.cell(i, j).value = old.strip().replace('', '').replace("n", "")
wb.save(file)
wb.close()
不完善的地方
  • 用了两个py文件,很明显可以只用一个,但很懒
  • 在PDF换页的时候, 有些地方需要手动改
  • pdfplumber安装的时候稀里糊涂,下次碰到报错估计还是瞎蒙

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/422627.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号