使用Python自动批量提取增值税发票信息并导出为Excel文件
创始人
2024-11-14 15:06:05

要批量提取增值税发票的关键信息并将其导出为 Excel 文件,可以使用 Python 脚本结合 pdfplumber(用于解析 PDF 内容)、pandas(用于处理数据并导出 Excel)等库来实现。以下是实现这一目标的详细步骤。

1. 环境设置

首先,需要安装所需的 Python 库:

pip install pdfplumber pandas openpyxl 

2. 编写 Python 脚本

import pdfplumber import pandas as pd import os  # 要处理的PDF文件夹路径 pdf_folder = 'path_to_your_pdf_folder' # 输出Excel文件路径 output_excel = 'output.xlsx'  # 定义存储提取信息的列表 data = []  # 遍历文件夹中的所有PDF文件 for filename in os.listdir(pdf_folder):     if filename.endswith('.pdf'):         pdf_path = os.path.join(pdf_folder, filename)                  with pdfplumber.open(pdf_path) as pdf:             # 假设发票信息在第一页,解析第一页内容             first_page = pdf.pages[0]             text = first_page.extract_text()                          # 提取关键信息,下面是一些假设的示例正则表达式             invoice_number = find_value_by_keyword(text, "发票号码")             invoice_date = find_value_by_keyword(text, "开票日期")             buyer_name = find_value_by_keyword(text, "购买方名称")             buyer_tax_id = find_value_by_keyword(text, "购买方纳税人识别号")             service_name = find_value_by_keyword(text, "货物或应税劳务、服务名称")             quantity = find_value_by_keyword(text, "数量")             unit_price = find_value_by_keyword(text, "单价")             amount = find_value_by_keyword(text, "金额")             tax_rate = find_value_by_keyword(text, "税率")             tax_amount = find_value_by_keyword(text, "税额")             total_amount = find_value_by_keyword(text, "价税合计")             seller_name = find_value_by_keyword(text, "销售方名称")             seller_tax_id = find_value_by_keyword(text, "销售方纳税人识别号")              # 将提取的信息添加到列表中             data.append({                 "PDF文件名": filename,                 "发票号码": invoice_number,                 "开票日期": invoice_date,                 "购买方名称": buyer_name,                 "购买方纳税人识别号": buyer_tax_id,                 "服务名称": service_name,                 "数量": quantity,                 "单价": unit_price,                 "金额": amount,                 "税率": tax_rate,                 "税额": tax_amount,                 "价税合计": total_amount,                 "销售方名称": seller_name,                 "销售方纳税人识别号": seller_tax_id             })  # 将数据导出到Excel df = pd.DataFrame(data) df.to_excel(output_excel, index=False)  print(f"提取完成,结果已保存到 {output_excel}")  def find_value_by_keyword(text, keyword):     # 定义一个简单的提取函数,实际需要根据发票格式调整     lines = text.split('\n')     for i, line in enumerate(lines):         if keyword in line:             return line.replace(keyword, '').strip()     return "" 

3. 脚本说明

  • PDF文件名: 使用 os.listdir 遍历指定文件夹中的所有 PDF 文件。
  • PDF解析: 使用 pdfplumber 打开并读取 PDF 内容,假设发票内容位于第一页。
  • 关键字提取: 使用 find_value_by_keyword 函数从文本中提取关键信息,该函数可以根据实际情况调整正则表达式。
  • 数据存储: 将提取的信息存储在列表中,最后将列表转换为 DataFrame 并导出为 Excel 文件。

4. 注意事项

  • 发票格式: 此示例假设发票的格式是一致的,如果格式有变动,可能需要调整关键字提取的逻辑。
  • 正则表达式: 如果发票内容较复杂,可以使用正则表达式进行更精准的匹配。

5. 运行脚本

将脚本保存为 .py 文件,修改 pdf_folder 路径为你的 PDF 文件夹路径,运行脚本后,提取的信息将会被导出为一个 Excel 文件。

相关内容

热门资讯

裸辞做“一人公司”,我后悔了 去年这个时候,一位以色列程序员正在东南亚旅行。他顺手把一个在脑子里转了很久的想法做成了产品,一个让任...
南京建成国内首个Pre-6G试... 4月21日,2026全球6G技术与产业生态大会在南京开幕。全息互动技术展台前,一名远在北京的工作人员...
超梵求职受邀参加“2025抖音... 超梵求职受邀参加“2025抖音巨量引擎成人教育行业生态大会”,探讨分享优质内容传播,服务万千学员。 ...
摩托罗拉Razr 2026(R... IT之家 4 月 22 日消息,摩托罗拉宣布新一代 Razr 折叠手机将于 4 月 29 日在美国发...
库克卸任,特纳斯领航:苹果新纪... 苹果首席执行官蒂姆·库克将卸任,硬件工程主管约翰·特纳斯将接任,苹果公司今天宣布此事。 库克将在夏季...