You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python提取PDF订单信息并导出为Excel表格

多页PDF订单信息提取到Excel实现方案

针对你需要提取多页PDF订单数据并导出到Excel的需求,这里提供一套适合Python新手的实现步骤和代码:

第一步:安装必要依赖

先安装两个核心库:pdfplumber(用于精准提取PDF文本)和pandas(用于处理数据并导出Excel)

pip install pdfplumber pandas

第二步:核心代码实现

以下代码会遍历PDF每一页,先提取页面顶部的订单号和日期,再提取每一行商品数据,最后将商品数据和对应的订单信息关联,导出到Excel:

import pdfplumber
import pandas as pd
import re

# 定义要提取的列名
columns = ["order number", "order date", "code", "items", "quantity", "price", "total"]
data_list = []

# 打开PDF文件
with pdfplumber.open("你的订单文件.pdf") as pdf:
    current_order_no = None
    current_order_date = None
    
    for page in pdf.pages:
        # 提取当前页所有文本,按行分割
        page_text = page.extract_text()
        lines = page_text.split("\n")
        
        # 遍历每一行文本,先找订单头信息(订单号、日期)
        for line in lines:
            # 匹配订单号(根据你的PDF格式调整正则)
            order_no_match = re.search(r"Order No\.: (\w+-\d+)", line)
            if order_no_match:
                current_order_no = order_no_match.group(1)
            
            # 匹配订单日期(同理调整正则)
            order_date_match = re.search(r"Order Date\.: (\d{2}/\d{2}/\d{4})", line)
            if order_date_match:
                current_order_date = order_date_match.group(1)
            
            # 匹配商品行(根据PDF实际格式调整正则)
            item_match = re.search(r"(\w+) +(.+?) +(\d+) +(\d+\.\d+) +(\d+\.\d+)", line)
            if item_match and current_order_no and current_order_date:
                code = item_match.group(1)
                items = item_match.group(2).strip()
                quantity = item_match.group(3)
                price = item_match.group(4)
                total = item_match.group(5)
                
                # 将数据添加到列表
                data_list.append([
                    current_order_no,
                    current_order_date,
                    code,
                    items,
                    quantity,
                    price,
                    total
                ])

# 将数据转为DataFrame并导出到Excel
df = pd.DataFrame(data_list, columns=columns)
df.to_excel("订单提取结果.xlsx", index=False)
print("数据已成功导出到订单提取结果.xlsx")

关键调整说明

  1. 正则表达式:上面的正则是基于样图格式编写的,实际使用时需要根据你的PDF文本格式修改order_no_match、order_date_match、item_match的正则规则,确保能精准匹配对应内容。
  2. 文本结构适配:如果PDF里的订单头和商品行位置有变化,可能需要调整遍历逻辑,比如先扫描完页面所有订单头,再处理商品行。
  3. 测试调试:建议先拿单页PDF测试,打印page_text查看文本结构,再逐步调整正则和提取逻辑。

内容的提问来源于stack exchange,提问作者learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 08:12:21