PDF 表格转 Excel开发与定制

一个 Python 脚本,把 PDF 报表、价目表或对账单中的表格提取到 Excel

通常15分钟内完成包含修改质量检查
套餐
付款保障详情
  • 套餐内的修改免费。
  • 如果交付后 3 天内您未作回应,工作将自动验收。

付款时款项会被冻结,仅在您验收后结算。

一个 Python 脚本,把 PDF 报表、价目表或对账单中的表格提取到 Excel

成果示例

标准版套餐示例

把 9 家门店的月度销售文件合并成一份 Excel 报表

如何运行

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  文件夹:sales/2026-10,找到 9 个文件
2026-11-02 09:14:03 INFO  shop-01.csv:1,284 行
2026-11-02 09:14:04 INFO  shop-02.xlsx:967 行
2026-11-02 09:14:04 WARN  shop-07.csv:跳过 3 行缺少价格的记录(第 88、412、913 行)
2026-11-02 09:14:05 INFO  完成:10,412 行 -> report-2026-10.xlsx(工作表“销售”和“汇总”)

改设置,不改代码

每家门店的列名都写在 settings.ini 中,所以新增一家门店或某列改了名,只需在那里改一行:

[columns]
date = 日期, 销售日期, 日
product = 商品, 品名, 名称
quantity = 数量, 件数, 个数
price = 价格, 单价

部分代码

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """读取一家门店的文件,并把列名改为报表使用的列名。"""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}:找不到“{name}”对应的列(已查找 {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

**文件:**一个 ZIP 压缩包,内含 merge_sales.py(310 行)、settings.ini、requirements.txt 和 README,说明如何安装 Python、运行脚本以及日志中每条消息的含义。客户在自己的电脑上运行。

**客户:**一家拥有 9 家门店的小型文具连锁店;每家门店每月以 CSV 或 Excel 文件发送当月销售数据,各自的列名略有不同。 **任务:**一个脚本,读取文件夹中的所有文件,把各列统一成同一格式,并生成一份 Excel 报表,包含全部销售记录和一张按门店汇总的工作表。

客户及所有信息均为虚构。

服务介绍

供应商价目表、银行或电商平台报表以及库存清单往往只有 PDF 版本,把其中的表格复制到 Excel 时,列就乱了。这个 Python 脚本读取 PDF 中的表格,并把它们写入 Excel 或 CSV,各列各就各位:它会把跨越多页的表格接起来,去掉重复的表头行和页脚;从标准版起,还会把 1 234,50 或 (120.00) 这样的写法转成真正的数字,把日期转成日期格式。脚本会针对您文件的版式进行调整,所以请发来一两个典型的 PDF,或版式相同、数据虚构的文件。PDF 必须包含真实文字,大多数从程序中保存的文件都是这样;扫描件和纸质文件的照片需要文字识别,不在本服务范围内。脚本由您自己运行,并请核对合计数。

服务内容

  • 您将获得一个 ZIP 压缩包,内含 Python 脚本、附分步说明的 README,从标准版起还包含写有列名和页码的设置文件;订单页面上也能查看代码。
  • 针对您的版式调整根据您发来的示例文件编写和测试
  • 各列各就各位PDF 中的一行就是 Excel 中的一行
  • 多页拼接长表格合成一个工作表,不重复表头
  • 真正的数字从标准版起,金额和日期可以求和、排序
  • 代码易读附有注释,版式变化时容易调整

服务流程

  1. 1
    示例您发来一两个典型的 PDF,并指出需要的表格
  2. 2
    代码我们针对该版式编写脚本和运行说明
  3. 3
    试用您在自己的文件上运行,并对照 PDF 核对合计数
  4. 4
    修改您在套餐范围内提出修改,如有报错信息请一并发来

需要您提供的信息

一两个您常收到的那类典型 PDF(或版式相同、姓名和数据虚构的文件),您需要哪几页上的哪张表格,以及想在 Excel 中保留哪些列。其中数字的写法(逗号、空格、负号或括号)和日期格式。您所有的文件是同一种版式,还是有好几种,您大约要处理多少个文件,以及您的系统:Windows、macOS 还是 Linux。

我们会询问您:

  • 这些 PDF 是什么?
  • 在 Excel 中需要哪些列?
  • 您的文件都长得一样吗?
  • 在哪里运行?

套餐对比

套餐基础版一种表格版式US$16标准版带设置的表格提取US$33高级版表格工具US$67
交付期限1 天2 天3 天
修改次数123
代码最多 150 行最多 400 行最多 1,000 行
代码文件数1最多 3 个最多 8
设置文件否是是
清晰的报错信息和日志否是是
运行选项及定时运行说明否否是
安装和运行说明(README)是是是
语言PythonPythonPython
下单 基础版下单 标准版下单 高级版

付款保障

您在下单时付款,但款项仅在您验收后才会结算。

  • 固定价格付款后套餐价格不会变动。
  • 款项先冻结付款时,这笔金额只是被冻结。您验收后,款项才会结算给平台。
  • 交付前检查每份成果在送达您之前都会经过质量检查,验收前您可以在订单页面查看。
  • 免费修改在需求说明范围内,您可以在套餐允许的次数内提出修改。
  • 3 天后自动验收如果交付后 3 天内您既未验收也未提出修改,工作将自动验收。如果您在交付后于订单聊天中留言,订单将暂停自动验收;我们回复后,可能会重新开始计算 3 天,并会在聊天中告知您。
  • 返工或全额退款如果成果与您的需求说明不符且修改后仍未解决,或工作耗时超过交付期限的两倍,请在订单聊天中留言:我们将为您返工或全额退款。
运作方式 →

问题与解答

任何 PDF 都适用吗?

它是针对您示例文件的版式制作的。如果供应商改了版式,脚本可能需要调整。扫描件等不含真实文字的 PDF 不在适用范围内。

怎么知道我的 PDF 是否包含真实文字?

打开文件,试着用鼠标选中一个词。如果能选中并复制,就是真实文字。如果整页被当成一张图片选中,那就是扫描件。

会出错吗?

会,PDF 中的表格并不是以表格形式存储的,所以一行不寻常的内容就可能打乱一行数据。因此脚本会记录它没有把握的页面,在使用结果之前,您应该对照 PDF 核对合计数。

我必须发送真实的报表吗?

不必。版式相同、数据虚构的文件效果一样好,之后脚本会在您的电脑上处理真实文件。

没有找到答案?

套餐