做了个 Excel Agent 的 exe 程序 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
w775495797
V2EX    程序员

做了个 Excel Agent 的 exe 程序

  • &nsp;
  •   w775495797 18 天前 2433 次点击

    背景

    半年前,我司有一个巨大无比的,100 字段+ 70 万行数据的 excel ,给总部的业务部门同事使用
    恰逢我所在的组有时间,严格来说就是我有时间
    先开发了相关的 MCP Server
    后发现 总不能让同事们使用 Cherry studio 来进行问答吧
    单独使用 dify 又感觉对 agent 支持的不是很好

    于是乎就开始开发了 MCP client


    先是对接 openai 的 sdk ,毕竟通用一些,各个厂商都兼容
    然后定前后端的交互标准,决定 websocket
    然后做着做着,我发现,我不止需要一个 Agent ,我还得多个 Agent 配合
    最后愣是从一个需求,变成手搓 Agent 框架 也考虑过 LangChain 或者 LangGraph 、AutoGen 等等很多框架 但是都不是很自由,因为我司用 LangChain 搭建的知识库问答系统,所以决定自己手搓吧

    然后在业务上 将 excel 转到 sqlite ,再用 llm 进行 text2sql

    项目算是上线了,这算是背景 当然啊,其实我从一开始就不打算弄 excel ,我做的是从 mysql 数据库同步数据库到我的 sqlite 子库
    毕竟主库不能随意修改,我这个子库只读的,分析的话就足够了,不然哪天不长眼的同事来一句,把数据都删了,麻烦就大了

    Excel 后续

    这个事情完毕后呢,我偶尔抬抬头
    发现,其实业务部门不止有这一个业务
    几乎财务、库管、综合部、销售部等等,人人都在对着 Excel 办公
    我心想的是,不如玩大一点
    做一个通用点的东西

    所以我抛弃了 MCP,不考虑一切增加用户麻烦的操作
    最终直接做出来一个 EXE 程序,牛马不难为牛马
    https://github.com/QingHeYang/KELA-Agents

    技术栈大概就是,python+vue+electron

    项目原理:

    1. excel 扔进来,理解表头,分析列数据
    2. 二维化,根据表头制作 sql table
    3. 导入全部数据进入数据库
    4. 自然语言问答

    相当于把一个 OR 多个 Excel 给做成了一个业务系统的数据库

    这个项目擅长的操作有:

    • 聚合分析,毕竟相当于 excel 导入成了数据库,自然语言
    • 擅长大量的数据,但是导入的时候要消耗内存,40w+数据,实测导入的时候 2GB 内存,导入后就不需要了
    • 把查询的数据转出 Excel ,让 llm 制作 excel ,筛选的 excel 都能导出,我做了相关的工具
    • 使用 Echarts 做图表,8 种吧,也算是工具
    • 数据溯源,llm 查询的数据,多于 15 行的,可以点击查看
    • 生成的东西保存历史,反正我描述不太清,一堆乱七八糟的功能

    截图在这里: https://github.com/QingHeYang/KELA-Agents/blob/main/docs/zh/screenshots.md

    不擅长的操作有
    他不是操作 excel ,各位大佬们应该懂这个,所以:

    • 调整不了格式
    • 无法新增数据,你让 llm 新增则另说
    • 什么样式什么的都无法调整
    • 预设的什么公式基本算是没有
    • 大致意思就是,office 擅长的,他都不擅长

    所以算是一个偏科生吧,擅长应付特别大的数据
    毕竟现有的很多 agent 都是使用 pandas 操作 excel ,数据量一大,上下文撑不住

    哦对了,一个大优势:
    使用用户自己的 api key 操作,也就是说,按需使用吧
    数据留存在本地,除了 llm 查看的那部分,他只能查看少量样本数据
    鄙人不会收集任何用户隐私与 excel 的表格、问答业务数据,对我没啥用, 我就想要 github 的 star ,到时候万一被裁了,也好找下家说,我做了什么东西,哈哈哈


    感兴趣的朋友可以看一看,不感兴趣的就当看了篇无聊的文章了

    下载在 release 里面: https://github.com/QingHeYang/KELA-Agents/releases/tag/v1.0.0
    安装不需要配置什么环境变量,不需要安装什么复杂的框架
    就是安装包,我想给绿色包来着,但是死活上传不上去,也不知道为什么
    存储桶的话,我掏不起那个 CDN 的钱,有什么便宜点的分发平台么?


    当然,我肯定用了大量的 ai 编程,我自己一个人又不是神仙,哈哈哈哈

    23 条回复    2025-11-28 22:52:36 +08:00
    persistpot
        1
    persistpot  
       18 天前
    star 一下看看
    zhcnxyz
        2
    zhcnxyz  
       18 天前
    先谢!加星下载用用
    RotkPPP
        3
    RotkPPP  
       18 天前
    写这个花了多久
    kevan
        4
    kevan  
       18 天前
    试试看
    canteon
        5
    canteon  
       18 天前
    我先收藏了,我最近一直在找一个类似的东西,因为我的那个广告投放也想做个类似的,把用户最近广告投放区域数据总结,然后问 ai ,然后给客户提示哪里应该关注。一直在总结数据,自己总结的还是差点意思。

    再给你个建议可以把 ollama 集成一下,这下用户所有的数据都在本地。ai 模型也在本地了。
    kevan
        6
    kevan  
       18 天前
    随便一个 CSV 就报错:
    上传失败: Cannot detect file format
    w775495797
        7
    w775495797  
    OP
       18 天前
    @kevan 啊,不好意思啊,csv 我没支持,本来 csv 要比 excel 简单的,后来我就主攻 excel 了,你可以转成 excel 一下试试看哈
    w775495797
        8
    w775495797  
    OP
       18 天前
    @canteon 支持 ollama 的
    w775495797
        9
    w775495797  
    OP
       18 天前
    @RotkPPP 智能体框架大概是我从 4 月开始做的,7 月完事的,后来 excel 的需求的话,差不多应该是 1 个月,断断续续的吧,3 个月左右吧
    yangg
        10
    yangg  
       18 天前
    不开源啊,想学学来着
    w775495797
        11
    w775495797  
    OP
       18 天前
    @yangg 开源 并且免费,就是现在项目还不稳定,这次发版其实就是类似内测一样,也在收集反馈和 bug ,等稳定一下就会开源
    yangg
        12
    yangg  
       18 天前
    @w775495797 好的,谢谢,等开源了看看
    Zakl21
        13
    Zakl21  
       18 天前
    做了一段时间类似的项目,其实核心难度挑战是在做上下文工程和核心意图处理,这个是最难的。
    Zakl21
        14
    Zakl21  
       18 天前
    楼主有兴趣的话可以留联系方式一起沟通下,互相借鉴一些好方案
    snailya
        15
    snailya  
       18 天前
    .NET 平台的可以试试 Microsoft Agent Framework ,微软的框架还是非常友好的。
    canteon
        16
    canteon  
       18 天前
    @Zakl21 我也好奇是怎么做的
    whoosy
        17
    whoosy  
       18 天前
    我也做了一个类似的,但是是网页形式的
    Zakl21
        18
    Zakl21  
       18 天前
    @canteon 其实这类工具本质就是 while true:call llm , exec tools ,然后自己定义 相关协议,来进行业务渲染 or 做更多的事情
    flyme2them00n
        19
    flyme2them00n  
       18 天前
    已 star ,期待更新
    Eathein
        20
    Eathein  
       18 天前
    4 个月做出来,有模有样,OP 有东西的
    NewMoorj
        21
    NewMoorj  
       18 天前
    这个花点时间在传统行业或者电商行业推广的话,可以实现财务自由了,因为直接解决很多问题。
    pmpmp
        22
    pmpmp  
       18 天前
    已 star ,有点 chatexcel 那味儿了
    xueyiren80
        23
    xueyiren80  
       17 天前 via Android
    我有个较大的表,能否实现不确定的部分关键字重合的记录排序在一起,并对部分字段为 0 的记录打标呢?最近正头痛这个。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3599 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 34ms UTC 10:29 PVG 18:29 LAX 02:29 JFK 05:29
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86