python - pdf转成excel文件
初次尝试用python将pdf转换为excel表格,如有错误欢迎指出,
需要用到的库如下,通过终端即可安装:
pip install pdfminer3k
pip install tabula-py
pip install openpyxl
如果是pip3,则:
pip3 install pdfminer3k
pip3 install tabula-py
pip3 install openpyxl
如果以上安装方法报错可以尝试换成其他安装源,换源语句:
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple //此为清华源
换源后安装语句:
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn pdfminer3k
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn tabula-py
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn openpyxl
新建一个IDLE文件,源码如下:
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter, PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBox, LTTextLine, LTText, LTFigure, LTImage, LTChar, LTTextBoxHorizontal
from pdfminer.pdfpage import PDFPage
from io import StringIO
def extract_table(pdf_path):
rsrcmgr = PDFResourceManager()
outfp = StringIO()
codec = 'utf-8'
laparams = LAParams()
device = PDFPageAggregator(rsrcmgr, laparams=laparams)
interpreter = PDFPageInterpreter(rsrcmgr, device)
with open(pdf_path, 'rb') as fp:
for page in PDFPage.get_pages(fp):
interpreter.process_page(page)
layout = device.get_result()
for lt_obj in layout:
if isinstance(lt_obj, LTTextBoxHorizontal):
outfp.write(lt_obj.get_text())
outfp.write('\n')
return outfp.getvalue()
#()内为文件路径需要替换为真实路径信息
table = extract_table('/Users/1.pdf')
print(table)
import tabula
def convert_to_csv(pdf_path, csv_path):
tabula.convert_into(pdf_path, csv_path, output_format="csv", pages="all")
#()内为文件路径需要替换为真实路径信息
convert_to_csv("/Users/1.pdf", "/Users/1.csv")
import pandas as pd
#()内为文件路径需要替换为真实路径信息
df = pd.read_csv("/Users/1.csv")
print(df)
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
def convert_to_excel(csv_path, excel_path):
df = pd.read_csv(csv_path)
book= Workbook()
sheet = book.active
for r in dataframe_to_rows(df, index=False, header=True):
sheet.append(r)
book.save(excel_path)
#()内为文件路径需要替换为真实路径信息
convert_to_excel("/Users/1.csv", "/Users/1.xlsx")
执行后即可在指定路径下看到输出的文件
注:如果程序运行报错需要注意:后面的空格调整
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)