用Python将Excel手工处理从几小时压缩到1分钟,我是怎么做的?

0 阅读5分钟

       每周,我都要花好几个小时处理一份Excel;需要从五六个不同的表中调取数据,然后对比判断;脑子不清醒的时候都能直接宕机;有时候也能把清醒的脑子变成不清醒。

      N个步骤,还得从表中提炼数据去平台中调取新的数据,无数次核对列名和公式。一不留神就会漏行、填错、格式乱掉。最怕的是:一不小心漏了哪步就会出错,出错就是大事。

       昨天,我花了很长时间先梳理了需求,然后在DC的指导下写了一个Python脚本;从着手写需求到调试到最后的成功,花了我4个小时。在写需求的时候,我是快乐的,因为我期待着成功之后的便捷。如今,1分钟跑完全程;这种一劳永逸的付出,让我再次体会到了我心飞扬!python简直神一般的存在。’

      今天就把这个自动化思路和工具分享出来,或许能帮你省下同样多的燃眉之急。

一、为什么需要这个工具?

我在日常工作中,每周都得需要处理集中大量“待付款合同”数据。

流程大致是:

  1. 从业务平台中导出“订单数据”;

  2. 手工对照“含有退税信息”的表和“采购表”;

  3. 根据一套复杂的规则(发货情况、双方判断、开票情况等)逐行填写几十列信息;

  4. 还要保证原始表格的格式不被破坏。

最后的目的就是判断采购合同本周是否需要开票。

每周都要重复相同操作,不仅耗时,还容易出错。更麻烦的是,有些数据需要分步从平台导出再导回,人工衔接很容易遗漏或错行。

昨天突发奇想,一鼓作气写了一个 Python 脚本,把整个流程自动化了。下面我就把实现思路和效果分享出来,希望能给有类似需求的朋友一些启发。

从O列到X列的表头到内容,都是自动生成的,再也不需要我手动操作啦!

图片

二、工具整体流程(分步交互)

这个工具采用了“两步法”的设计,每一步都只做一件事,我只需按要求导入/导出平台,其余都由脚本自动完成

| 步骤 | 做的事 | 生成的文件 | | --- | --- | --- | | 第一步 | 从“待付款合同”表中提取【采购合同号】,生成导入文件 | 待带出订单号的采购合同号.xlsx | | 第二步 | 我把上一步文件导入平台,导出“订单数据”;脚本自动判断发货情况,再生成新的导入模板 | 待导出出售方及合同编码的订单号-前期文件.xlsx | | 第三步 | 我再把模板导入平台,导出匹配信息;脚本把合同编码、币种、出售方回填 | (更新“订单数据”) | | 第四步 | 脚本自动从“含退税信息的表”和“采购合同”中抓取信息,最终向“待付款合同”表追加9列计算结果 | 原表更新(保留格式) |

每一步都有清晰的提示,我只需按回车键继续,完全不需要记忆复杂操作。

图片

图片

每一步都在等我新的表格,当新表格放入后,就可以摁回车继续拉!

三、自动化帮我实现了什么

1. 【平台中采购合同号】的生成规则

  • 原待付款表中采购合同号分布在不同的列,而平台中采购合同号只有一种,就根据指定的规则,比如大于1234号就取第一列中的采购合同号,小于等于1234就取第二列中的采购合同号

2. 【平台中发货状态】的判断

根据同一采购合同号下的总台数(A)、完成台数(B)、实际发货数量(C):

| 条件 | 结果 | | --- | --- | | A == C | 全部发货 | | A == B 且 C == 0 | 全部完成,未发货 | | A == B > C > 0 | 全部完成,部分发货 | | C == 0 且 B == 0 | 未完成 | | A > B 且 C == 0 | 部分完成,全部未发 | | A > B > C > 0 | 部分完成,部分发货 | | 其他 | 待核实 |

3. 【双方判断结果】的组合规则(部分示例)

| 待付款表格的情况 | 平台中发货情况 | 双方判断结果 | | --- | --- | --- | | 全部发货 | 全部发货 | 双方均已发货 | | 部分发货 | 含“部分发货” | 双方均部分发货 | | 不是全部发货 | 全部发货 | 单方发货-平台 | | 全部发货 | 不是全部发货 | 单方发货-待付款 | | 未发货 | 非“全部/部分发货” | 本月无需操作 |

4. 【开票情况】的计算

  • 当“双方判断结果”为“双方均已发货”时:

  • 若对应的“是否退税”列包含“是”,则生成 {当前年月}-进项-待定

  • 否则生成 {当前年月}-进项

  • 其他情况留空。

四、效果对比

  • 手工处理

    :一个合同号约需 5-10 分钟,每次处理几百行,需要半天以上,且容易看错行。

  • 脚本处理

    全程不到 1 分钟(中间两次导入导出平台仍然需要人工,但核对和填写工作完全免除)。

更重要的是,错误率降为 0(只要原始数据正确)。

图片

五、使用方法

  1. 准备好以下文件放在同一目录:
  • 待付款合同

  • 含退税信息的表

  • 采购合同数据

2.运行脚本(需安装 Python 及 pandas、openpyxl)

按屏幕提示分步操作:

  1. 脚本生成第一个导入文件 → 用户导入平台→ 导出“订单数据”放回目录 → 按回车;

  2. 脚本生成第二个导入文件 → 用户再次导入平台 → 导出“已导出”文件放回目录 → 按回车;

  3. 脚本自动完成所有填充,并更新“待付款合同”表。

3.终极效果

直接在原表上新增9列数据,并做出相应的判断,原有格式统统保留。

七、总结

这个工具目前已经稳定运行了多轮,处理了几十份真实合同数据,零差错。它把我们从重复、繁琐、易错的表格处理中解放出来,可以把精力放在更有价值的事情上。

如果你也有类似的 Excel 自动化需求,不妨试试 “分步交互 + pandas + openpyxl” 的组合。