Python提取PDF发票信息并导入到Excel中 您所在的位置:网站首页 电子发票的查询和保存方法 Python提取PDF发票信息并导入到Excel中

Python提取PDF发票信息并导入到Excel中

2024-07-02 22:03| 来源: 网络整理| 查看: 265

本篇文章将学习提取pdf发票信息,并将发票信息导入到Excel中。

使用到的Python库:

pdfplumber Gooey pyinstaller 背景

Python提取PDF发票信息并导入到Excel中

随着电子发票越来越普遍,企业使用的越来越多,在财务报账流程中需要将发票信息录入到财务系统(如K3)中,在这个过程中,通常有以下几个痛点:

发票信息检查容易出错。 手动录入发票信息效率十分低下。 人工处理非常容易出错。 电子发票文件名不规范,不容易区分。如:045001600111112565055.pdf 解决方案

做一个程序,自动提取发票中的文字信息,并保存到Excel中。

这样可以从Excel中检查发票信息是否完整,并且从Excel中复制或导入到财务系统中,大大提高了工作效率。

程序效果

程序界面

导入到Excel中

文件重命名

实现方法 发票识别

使用pdfplumber,安装命令pip install pdfplumber

import pdfplumber import re import os def re_text(bt, text): m1 = re.search(bt, text) if m1 is not None: return re_block(m1[0]) def re_block(text): return text.replace(' ', '').replace(' ', '').replace(')', '').replace(')', '').replace(':', ':') def get_pdf(dir_path): pdf_file = [] for root, sub_dirs, file_names in os.walk(dir_path): for name in file_names: if name.endswith('.pdf'): filepath = os.path.join(root, name) pdf_file.append(filepath) return pdf_file def read(): filenames = get_pdf('C:\Users\Administrator\Desktop\a') # 修改为自己的文件目录 for filename in filenames: print(filename) with pdfplumber.open(filename) as pdf: first_page = pdf.pages[0] pdf_text = first_page.extract_text() if '发票' not in pdf_text: continue # print(pdf_text) print('--------------------------------------------------------') print(re_text(re.compile(r'[\u4e00-\u9fa5]+电子普通发票.*?'), pdf_text)) t2 = re_text(re.compile(r'[\u4e00-\u9fa5]+专用发票.*?'), pdf_text) if t2: print(t2) # print(re_text(re.compile(r'发票代码(.*\d+)'), pdf_text)) print(re_text(re.compile(r'发票号码(.*\d+)'), pdf_text)) print(re_text(re.compile(r'开票日期(.*)'), pdf_text)) print(re_text(re.compile(r'名\s*称\s*[::]\s*([\u4e00-\u9fa5]+)'), pdf_text)) print(re_text(re.compile(r'纳税人识别号\s*[::]\s*([a-zA-Z0-9]+)'), pdf_text)) price = re_text(re.compile(r'小写.*(.*[0-9.]+)'), pdf_text) print(price) company = re.findall(re.compile(r'名.*称\s*[::]\s*([\u4e00-\u9fa5]+)'), pdf_text) if company: print(re_block(company[len(company)-1])) print('--------------------------------------------------------') read()

通过上述代码可以实现对pdf发票的内容识别和输出功能。

写入到Excel中

使用xlwt写Excel文件,安装命令pip install xlwt,一个简单的例子如下:

import xlwt # 创建工作簿 wb = xlwt.Workbook() # 创建表单 sh = wb.add_sheet('sheet 1') # 写入数据 sh.write(0, 1, '姓名') # 保存 wb.save('test.xls') 创建软件界面

使用Gooey创建GUI图像界面,安装命令pip install Gooey。Gooey是个适用于命令行的图形工具,也就是只做输入(有各种输入/选择框)和输出的情况,不适用于做界面展示,无法添加自定义按钮,如button等。使用print就能将输出内容显示到GUI图形界面上。

Gooey实例如下:

from gooey import Gooey, GooeyParser @Gooey(program_name="简单的实例") def main(): parser = GooeyParser(description="第一个示例!") parser.add_argument('文件路径', widget="FileChooser") # 文件选择框 parser.add_argument('日期', widget="DateChooser") # 日期选择框 args = parser.parse_args() # 接收界面传递的参数 print(args) if__name__ == '__main__': main()

Python提取PDF发票信息并导入到Excel中

打包为exe文件

使用pyinstaller将代码打包为exe文件安装命令pip install pyinstaller打包命令pyinstaller -F xxxxx.py -w (xxxxx.py改为具体的.py文件名)等待打包完成,在代码对应的目录下会生成dist文件夹,打开后可以看到exe程序。

Python提取PDF发票信息并导入到Excel中

软件下载

当然你如果你有使用需求的话,可以查看此文章下载软件。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python提取PDF发票信息并导入到Excel中 - Python技术站



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有