要批量提取增值税发票的关键信息并将其导出为 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 文件。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部