我用 C# 开发了一款电子发票自动整理工具

上个月,一个做财务的朋友跟我抱怨:

邮箱、微信、网盘里全是电子发票 PDF,有的还打成 ZIP。

月底入账就得一个个打开,抄号码、日期、金额......坐一下午是常态。

我下意识回了一句:「这玩意儿不就是解析 PDF、填 Excel 吗?」

朋友白了我一眼:「你说得轻巧。」

说完我就后悔了------因为我是写 C# 的,这句话等于给自己挖了个坑。

于是有了 发票助手 Pro :面向中小企业财务、外贸、代账场景的电子发票批量整理工具。

今天把从吐槽到上线的过程写下来,给同样被「重复劳动」折磨的人,也给对 .NET 桌面工具感兴趣的开发者。


一、问题不是「会不会转 Excel」,而是「适不适合你们的表」

市面上并不缺「PDF 转 Excel」。但财务真正要的往往是:

  1. 一次扔进整月压缩包,而不是一张张选文件
  2. 抽出能入账的字段(号码、日期、买卖方、金额、税额、明细)
  3. 填进公司已经在用的 Excel 模板,而不是再适应一款软件的固定表头
  4. 金额对得上------价税合计、明细加总、行内税率,错了要标出来

所以我从一开始就没把产品定位成「转换器」,而是:

企业发票自动整理工具 ------ 解析引擎 + 标准数据模型 + 模板输出。

价值叙事很简单:

yaml 复制代码
1000 张发票 → 批量解析 → 校验勾稽 → 套你们的模板 → 接近可入账的台账

二、为什么用 C# / .NET?

个人偏好和技术现实叠在一起:

选择 原因
C# / .NET 10 我更熟,类型系统适合做票据规则与金额计算
MAUI 桌面端 财务习惯本地跑、数据留在自己电脑
PdfPig 抽文本 国内全电票多数带文本层,优先规则解析,成本可控
自研 Parser 路由 普票 / 地区版式 / 电商「甩值」布局差异大,要可扩展

技术上踩过的坑,比想象中「读个 PDF」脏得多:

  • 有的票版面好看,文本层却是空模板 + 末尾甩值
  • 买卖方公司名、税号可能粘在一行没空格
  • 折扣行税额和税率会合成离谱的 38.5413%
  • 竖排「销售方信息」先于「购买方」,赋值顺序一反就「销售方空白」

这些不会出现在宣传页上,但决定了「能不能真的省时间」。

解析之后还有一层 金额勾稽:对不上的票在预览里标「异」,优先人工复核------软件负责提速,人不负责闭眼相信。

架构上大概是这样(开发者可略看):

复制代码
PDF/ZIP
  → 文本提取
  → 票种检测
  → ParserRegistry(多 Parser 路由)
  → InvoiceInfo 标准模型
  → 金额校验
  → 默认 Excel / CSV,或自定义模板填充

授权与更新走国内服务(激活、版本检查),企业版支持离线场景------这是另一篇文章的事。


三、现在能做什么?

对用户侧,当前大致能力:

  • 拖拽 / 选择 PDF,ZIP 批量解压再解析
  • 电子发票(普通发票)等常见文本票解析
  • 汇总 + 明细导出,专业版支持 CSV 、自定义 Excel 模板 + 字段映射
  • 预览阶段做金额勾稽,异常票优先复核
  • 免费体验(每天有额度);个人版 / 专业版买断;企业年费

也提供 代整理服务:发票包发过来,整理成 Excel(也可按公司模板),适合月底实在没空自己跑的人。


四、写给同类开发者的几句实话

  1. 先服务,再软件也可以。早期用「代整理」收真实样本和反馈,比空想功能列表快。
  2. 中国财务更认买断。 个人/专业版永久,企业再谈年费,比硬推纯订阅省心。
  3. 规则解析有天花板。 扫描件、复杂版式后面要上 OCR;但文本票把规则做透,已经能覆盖大量刚需。
  4. 本地工具要过「信任关」。 安装包体积、更新、授权、售后话术,和解析准确率一样影响复购。

五、写在最后

这不是一个「改变世界」的项目,只是把一件月底反复发生的苦差事,变成几分钟的批量活。

若你是:

  • 财务 / 外贸 / 代账,每月被电子发票折磨
  • 或用 .NET 做工具型产品的同行

欢迎试试 发票助手 Pro,或把样本票发我聊聊场景。

  • 下载试用:download.iqbiao.com
  • 需要代整理、企业授权:后台留言「发票」或加V(pfbossyt)说明来意

也欢迎转发------说不定你朋友圈里,就有一个正在对着 ZIP 叹气的人。


相关推荐
下页、再停留1 小时前
【C#桌面客户端系列学习-2】在原来窗口基础上打开新窗口
c#·visual studio
Behavior1 小时前
Unity 手游 iOS Deep Link 唤醒全流程:从 URL Scheme / Universal Links 到 C# 层参数投递
c#·unity3d·游戏开发
我是唐青枫1 小时前
我用 C# 开发了一款电子发票自动整理工具
c#·.net
WAKU1 小时前
C#: 爸爸再爱我一回! 写在微软使用Rust重写GitHub Copilot之后的碎碎念
microsoft·rust·微软·c#·编程语言
唐青枫1 小时前
别把 WPF 写成一个 MainWindow:C#.NET Prism 模块化开发详解
c#·.net
用户788477316341 小时前
WPF 数据绑定 5 个隐形坑:第 3 个 90% 的人都栽过
c#
小羊没烦恼!5 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
小羊没烦恼!5 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
神仙别闹5 天前
基于C#+MySQL实现(WinForm)个人聊天室软件
c#