前言
—— 我用 Python + AI,做了一个 用友 U8 凭证自动录入助手
文章开始之前我先向大家介绍一下我所使用的全部AI以及软件
- Visual Studio Code
- Visual Studio Code 插件
- 豆包 国内就可以访问 帮助我初步书写Prompt以及查询一些其他的信息
- ChatGPT 我的唯一认证的设计师以及架构师强烈推荐使用
- 使用的软件非常少,和以前动辄打开N个网页+N个软件相比不可谓是精简到了极致了
以前我一直觉得:
“自动化软件” 这种东西,离前端程序员特别远。
因为在大多数人的认知里:
- 前端 = Vue / React
- 自动化 = Python / 脚本 / 爬虫
- ERP = 企业开发
- 财务软件 = 古老 WinForm
感觉完全不是一个世界。
直到最近。
我亲手做了一个:
Excel → 自动生成数据 → 自动录入用友 U8
的桌面自动化软件。
而且最离谱的是:
我几乎不会 Python。
整个项目,基本是:
AI + 前端经验 + 疯狂调试 + 疯狂CodeReview
硬肝出来的。
这篇文章,我会完整讲:
- 为什么会做这个项目
- 前端程序员最大的误区
- AI Coding 到底怎么用
- 技术选型:我为什么最后用了 Python
- 最开始的 UI 有多丑
- UI 重构:前端经验终于派上用场了
- UI 为什么重做了三次
- 如何实现 U8 自动录入
- 我第一次意识到 AI 开发已经变天了
- AI Coding 最大的误区
- 我怎么和 AI 协作?
- 前端程序员最大的优势是什么?
- 这个项目最大的感受
- 我的感受
中间我会穿插一些真实截图、Prompt、代码结构、踩坑经验。
这不是教程。
更像是一篇:
一个前端程序员被 AI 强行带进自动化世界的实战记录
一、为什么会做这个软件?
事情很简单。
我老婆是做财务的。
她每个月有一天总是重复一件事:
打开 Excel
复制数据
打开用友 U8
录入凭证
保存
下一条
下一条
下一条……
一天几百条,这个事情干下来可能只有财务人才知道的痛浑身疼手指都不听指挥。
我当时看完第一反应:
这玩意儿不是纯体力劳动吗?
但真正了解后才发现:
根本没那么简单。
因为财务系统:
- 字段特别多
- 校验特别严格
- 不同公司规则不同
- 科目特别复杂
- U8 UI 极其古老
很多自动化根本没法直接做。
而且:
财务软件,尤其 ERP 软件,几乎是 “AI 自动化” 的天然场景。
因为:
- 规则固定
- 重复操作极多
- 人工录入成本巨大
- 容错率要求高
这类东西,理论上最适合 AI + 自动化。
于是我开始想:
能不能做一个:
Excel 导入 → 自动映射 → 自动录入 U8
的软件。
二、前端程序员最大的误区
刚开始我特别天真。
我以为:
AI 现在这么强了,
直接一句 Prompt 就能生成软件。
结果现实是:
AI 会写代码
≠
AI 会做项目
这是两个完全不同的东西。
尤其是:
自动化软件和 Web 项目完全不是一个逻辑
前端开发:
页面
接口
状态管理
组件
自动化软件:
窗口句柄
OCR
键盘模拟
鼠标控制
线程
阻塞
异常恢复
系统权限
我第一次看到:
pyautogui.click()
的时候都惊了。
原来:
代码真的可以控制鼠标。
三、AI Coding 真正改变的是什么?
很多人觉得:
AI Coding = 自动生成代码
其实不是。
真正变化的是:
它降低了 “跨领域开发” 的门槛
以前:
一个前端想写 Python:
至少要学几个月
现在:
你只需要:
- 看得懂代码
- 知道自己要什么
- 会拆需求
- 会调试
AI 就能帮你补齐:
- Python
- Qt
- 自动化
- OCR
- 打包
- 多线程
等等。
说白了:
AI 正在把“语言能力”变成次要能力。
真正重要的是:
产品能力
问题拆解能力
调试能力
现在还有很多人担心自己不会写Prompt其实完全不需要担心 这是我写的真的不怎么好 但是现在Ai的理解能力真的很强大即使你真觉得自己写的不好完全可以先让豆包给你优化一下
四、技术选型:我为什么最后用了 Python?
一开始我甚至想用:
Electron
因为我是前端。
但后来发现:
Windows 自动化,Python 生态太强了
尤其:
| 能力 | Python生态 |
|---|---|
| OCR | easyocr / paddleocr |
| GUI自动化 | pyautogui |
| Windows API | pywin32 |
| 图像识别 | opencv |
| 桌面GUI | PySide6 |
| Excel处理 | pandas/openpyxl |
几乎全是现成的。
而且:
AI 对 Python 的支持明显更强。
很多冷门问题:
Claude / GPT 都知道。
五、最开始的 UI 有多丑?
我一开始完全没有桌面软件经验。
于是我给 AI 的提示词为:
“我想实现一个功能 功能如下 有一个软件是财务软件(用友u8) 这个财务软件有一个记账凭证 想通过打开这个软件然后通过录屏的方式实时识别这个记账凭证的金额然后生成一份excl 最后给用户一个exe安装就可以用 那个界面长这样”
结果长这样:
整个界面:
- 无任何特色
- 无任何UI设计
- 好像那十几年前的软件
- 没有重心让人一眼看上去很杂乱
但问题是:
财务软件根本不需要“好看”
而需要:
- 稳定
- 清晰
- 高密度
- 专业感
后来我才意识到:
企业软件和消费级 UI 是两个世界。
财务人员不关心:
- 动效
- 插画
- Banner
他们只关心:
Excel 导入了没?
映射对没?
哪些失败了?
现在录到第几条?
于是我把 UI 全推翻重做。
六、UI 重构:前端经验终于派上用场了
后来我开始研究:
- 金蝶
- 用友
- 飞书后台
- 企业微信后台
- SAP Fiori
我发现:
企业软件有一套完全不同的设计逻辑
核心是:
高信息密度
低学习成本
弱视觉干扰
于是我重新设计:
- 顶部状态栏
- Excel 导入区
- 字段映射区
- 凭证预览表格
- 自动录入区
- 实时日志区
整个软件一下就:
“像专业软件了”
七、最难的部分:自动录入 U8
这部分真的是爆肝。
因为:
U8 太古老了。
很多控件:
- 不能直接获取
- 没有标准 API
- UI 自动化支持极差
最后只能:
OCR + 图像识别 + 键盘模拟
例如:
pyautogui.press("tab")
pyautogui.write("1001")
再配合:
截图定位
OCR识别
窗口检测
甚至我都是把U8软件截图给到AI,帮助AI更快的认识这个软件的页面以及功能
整个过程特别像:
给 AI 写一个“会计机器人”
八、我第一次意识到 AI 开发已经变天了
这个项目有一个特别震撼我的点。
以前:
一个人不可能同时会:
- UI
- Python
- 自动化
- OCR
- 桌面软件
- 财务流程
但现在:
AI 可以帮你补足大量陌生领域。
于是:
真正的瓶颈不再是:
“你会不会这个技术”
而变成:
“你有没有能力把事情做完”
这是非常恐怖的变化。
九、AI Coding 最大的误区
很多人现在:
疯狂生成代码
但项目还是做不出来。
为什么?
因为:
AI 最大的问题是:
它:
不会维护架构
代码一多:
- 会开始乱改
- 会互相污染
- 会引入回归 Bug
- 会生成重复逻辑
所以后来我学会了:
一定要先让 AI 写“系统设计”
而不是直接写代码。
例如:
我会先让 AI 输出:
项目目录结构
模块职责
线程模型
UI层级
数据流
异常机制
然后:
再逐模块开发。
这是我后面效率暴涨的关键。
十、我怎么和 AI 协作?
后来我形成了一套流程。
第一步:产品经理模式
先让 AI 输出:
PRD
页面结构
交互流程
状态流转
第二步:架构师模式
让 AI 设计:
目录结构
模块拆分
线程设计
数据层
服务层
第三步:开发模式
再逐模块生成。
例如:
先写 Excel 导入
再写字段映射
再写 OCR
再写自动录入
不要:
“一次生成整个项目”
否则一定炸。
十一、前端程序员最大的优势是什么?
做到后面我越来越发现:
前端程序员其实特别适合 AI 时代
因为:
前端天然具备:
- UI 思维
- 交互思维
- 产品感
- 用户体验
- 状态管理能力
而 AI 最缺的:
恰恰是:
产品逻辑
所以现在很多时候:
真正厉害的人不是:
最会写代码的人
而是:
最会拆需求的人
十二、这个项目最大的感受
以前:
我总觉得:
“我不会 Python”
所以很多东西做不了。
现在发现:
不会 ≠ 不能做
AI 已经把:
“学习一门语言”
这件事的重要性大幅下降了。
真正重要的是:
- 你能不能发现问题
- 你有没有产品想法
- 你会不会调试
- 你能不能坚持把项目做完
因为:
AI 不会替你完成项目。
它只是:
把“不可能”变成了“可以试试”
十三、最后
这个软件现在还没完全做完。
但它已经让我彻底意识到:
AI 正在改变软件开发的方式
以前:
一个人 = 一个岗位
现在:
一个人 + AI
=
一个小团队
这真的不是夸张。
尤其对于独立开发者来说。
未来最恐怖的事情可能是:
懂产品的人
开始拥有真正的开发能力。
而这件事。
才刚刚开始。