先看结果。下面这套系统现在的样子,562 条资产,列表、搜索、详情、导入、筛选五个部分:

资产清单列表:顶部 8 个状态统计、筛选栏和资产表格
▲ 做出来之后长这样。顶部那排数字是各状态的条数,跟着数据实时变

下面六个提示词可以直接抄——每个深色框右上角有复制按钮,点一下整段就进剪贴板,粘到输入框里能直接用(提示词内部的换行和编号会原样保留)。要动手的地方就是复制粘贴。

只讲第一步:怎么把一张 Excel 变成能搜、能筛、点开看全部字段的网页。上一篇讲过的三件事是全程前提,这里只带一句:建专用文件夹、挑倍率最低的模型、开计划模式。第三件这次更重要——从零做一个东西,跑偏了整件事都要重来。

提示词一:把需求写成四行,不要写成一句话

技巧:需求写得越具体,它跑偏的空间越小。但「具体」不是「详细」——把「谁来用、怎么用」这两句写清楚,比多写三百字背景有用。

最常见的做法是一句话甩过去:「帮我把这个 Excel 做成一个能查的系统。」它真的会给你一个系统——一个你没想过的系统。所以动手之前先写四行,这张表可以直接照抄:

你要说清的一件事我这行的写法
谁来查本部门十几个人,只看不改
查什么按编号、品牌、型号、使用者搜;状态和区域能筛
看到什么点任意一行,弹窗显示这条记录的全部字段
怎么用一个网址,打开就完事

第一行和第四行最容易被漏,漏了代价最大。第一行决定要不要做权限——我这个最后是只读的,谁都能改等于没人负责。第四行决定它会不会顺手塞一堆你永远用不上的东西(用户管理、权限体系、消息通知)。

提示词 01
我要把一张 Excel 台账做成能查的网页系统,先别写代码,先跟我说说你打算怎么做,等我确认了再动手。 先说清楚四件事,我要什么: 1. 谁来查:本部门十几个人,只看不改,不用做登录和权限 2. 查什么:按编号、品牌、型号、使用者、SN 搜,状态和区域能筛 3. 看到什么:列表只显示最常用的几列,点任意一行弹窗显示这条记录的全部字段 4. 怎么用:一个本地网址,双击就能打开,不要让我装数据库服务 数据存在哪、列表显示哪几列、怎么搜、能不能改,这四个问题你先问我,不要自己假设。

最后那句是关键:加上它之后它会先问你四个问题,而不是替你决定。「先别写代码」和「等我确认了再动手」是有意加的——少了任何一个,它大概率直接开始生成。第1 行里「只看不改」四个字也很有用:它会据此跳过登录、权限那一套,那套东西做出来很花时间,而你根本用不上。

提示词二:让它把 Excel 的两个坑提前处理掉

技巧:Excel 转系统有两个必踩的坑——日期变成数字、金额变成文本。它们不会报错,只会让数据静默地错掉。必须在第一句话里就说,不能等。

坑一:日期。Excel 里的日期在文件里存的不是「2025-03-04」,而是一串数字,叫序列号,2025-03-04 对应的数字是 45720。程序直接当数字存,你看到的日期就变成 45720。

坑二:金额。金额列常常是「文本」格式,在 Excel 里看着能算,但程序读出来是字符串,排序会按字符顺序排——九千排在八千后面,因为「9」比「8」大。

这两个坑你不用知道序列号怎么算,只要告诉它「日期读出来是数字,要转回日期」就行。实在不放心,可以把换算规则也写给它——我那次的处理逻辑是:纯数字且落在 25569 到 73415 之间(对应 1970 到 2100 年),按基准日 1899-12-30 换算回来,否则当字符串;金额强制转数字,转不了留空。这是日期全乱之后才补上的,白花一轮时间,所以要提前说:

提示词 02
读取 Excel 的时候帮我处理两个问题: 1. 日期:Excel 里的日期存的是数字不是日期(比如 2025-03-04 在文件里是 45720),帮我转成 2025-03-04 这种格式,别让页面上显示一堆数字。 2. 金额:金额这一列如果是文本形式的数字,转成数字;转不了就留空,不要当文字存——不然排序会按字符顺序排。

写成「日期读出来是数字,转成日期」就够了,不用查序列号怎么算——那是它的活,不是你的活。如果你想要更稳,可以像我一样把换算区间和基准日也写上(上面那段就是)。但必须说清「转不了就留空」这个兜底,不然它可能自己编一个日期。

提示词三:让它把「已完成」拆成你能逐条验收的动作

技巧:让它交付的时候顺手交一份验收清单。你自己想该验什么容易漏,因为它「已完成」三个字会让人放松警惕。

它交付时会说「已完成」——意思是「我做完了」,不是「做对了」。回头整理出五条,换个系统也能套用:

#验什么怎么验我那次的实际情况
1文件真的生成了打开目录数据库文件在,网页能打开
2数据总数对得上看列表上方那排数字的总和,跟 Excel 行数比562,跟 Excel 一致
3搜得到具体某一条搜一个你一定知道存在的编号能搜到
4弹窗字段全点开任意一条所有字段都在,不是只有列表那几列
5日期和金额没变形看这两列日期是 2025-03-04,金额右对齐

第 2 条最容易被跳过,但它最省事。那排状态数字跟着数据实时算——总数不对或某个状态突然多出很多条,说明导入时有重复或解析问题。先对总数,再看细节。第 3 条挑编号有个窍门:别挑第一条,挑一个你印象里一定存在、但不常翻的。太靠前的编号你可能压根没印象,搜不到会以为导入失败,往错的方向查半天。

搜索框输入资产编号后,列表只剩一条匹配结果
▲ 按编号搜。它能确认「数据到底进没进去」——搜不到,问题一定在导入这一步,不用往下猜
点开一行后的详情弹窗,左侧是基本信息和使用信息,右侧是操作记录
▲ 点任意一行弹出的详情,这是第 4 条要验的:左边基本信息 + 使用信息 + 备注,右边是这条资产的操作记录

列表只显示了最常用的几列,点开能看到全部——「列表显示什么」和「详情显示什么」是两个独立的选择,这是提示词 01 里那句「列表只显示最常用的几列」的配套。

搜索还有一层现在挺好用:不只搜资产自己的字段,还搜它的操作记录,搜一个人名能捞出「曾经经手过这台设备的人叫这个名字」的资产。但它走不了索引,只能一张张表扫——现在没感觉的慢,是数据量涨上来才暴露的慢。

提示词 03
做完了之后,给我一份验收清单,列成表格,每条写清楚「验什么」和「我怎么操作能看到结果」。我照着一条条点。 另外做两件顺手的事: 1. 把你建的表都有哪些字段列给我看,每一格标清楚:哪些必须填、哪些你给了默认值。我要确认它跟我给的 Excel 列名对得上。 2. 以后每次有人改一条记录,把改了哪几个字段、改前是什么、改后是什么,记一条下来,我要能在详情里看到这条的变化过程。

第 1 条会把「你建了哪些表、每格要不要填、有没有默认值」这类你本来不会主动问的东西摊到你面前。我那次的清单就暴露了一个当时没注意到的问题——区域字段带了默认值,漏填的记录被静默补上同一个值,从表里看不出来(后果见第六节)。第 2 条是意外收获:做资产系统时「这机器现在该归谁」经常说不清,不是因为没数据,是因为改动过程没被记下来。记录下来是顺手加的,后来比功能本身用得多。

提示词四:导入要防重复,但要先想清楚是「替换」还是「跳过」

技巧:导入逻辑里的「重复了怎么办」,是业务决定,不是技术决定。这一步必须自己想清楚,AI 不知道你的台账是权威版本还是流水账。

做到这一步系统还是一次性的——下个月台账更新了,你还得重新搭一遍。所以趁热加一步:

提示词 04
以后我每个月都会换一份新的 Excel 进来,列名完全一样,只是数据变了。给我加一个导入入口,我选文件就能导进去。 有两点要这样做: 1. 导入的时候,如果资产编号已经存在了就跳过,不要覆盖——我不确定新表里的这条是不是有意修改过的。 2. 导完告诉我成功几条、跳过几条,跳过的必须写明跳过原因——是编号重复、编号为空,还是字段不完整。不要只说「导入完成」,我要知道有多少没进去。

「不要只说导入完成」这句值得单独讲。很多系统导入完只回一句「导入完成:成功 8 条」,跳过的那部分就吞了。逼它把跳过原因分类报出来,你才能判断是正常去重还是你的表有问题。

说回「重复了怎么办」。这个系统给了三种模式,选哪个是业务决定:

模式做什么什么时候用
替换清空现有数据,导入新的台账是权威版本,只保留最新的
跳过重复编号已存在的跳过,其余追加台账是累计录入性质,不定期全量替换
覆盖更新编号已存在的,用新表的值覆盖新表一定是最新的,允许改字段

只有你知道哪个对。如果你的台账是「现在手上有什么」,用替换;如果是「历史上发生过什么」,用追加。这一条不能问 AI,必须自己想清楚。我那次的取舍是跳过:遇到编号已存在的直接跳过,不覆盖——当时台账是累计录入性质的。如果重来一次,我会做成三种模式让你在界面上选,而不是写死在代码里。

导入一份 Excel 后的提示条:成功 8 条,跳过 2 条,总数从 562 变成 570
▲ 传一份 Excel 进去。那份示例表是 10 行,其中 2 行编号和库里重复了,所以跳过。总数从 562 变成 570

两点值得看:新记录的部门是自动带出来的——示例表里我只填了使用者和区域,部门那一列它自己反查出来了。这是第三节末尾那个「让表结构可见」的意外收获,我看到部门字段后专门让它加了这条规则。以及总数对得上:562 + 8 = 570,页面数字和它报的一致。

提示词五:字段别一次想全,加字段的成本要低于维护成本

技巧:加字段的唯一判断标准是「填它有多麻烦」,不是「它有多重要」。重要的字段填不动,一年后照样是空的。

系统跑起来之后,我陆续加了 7 个字段。现在回头看,这 7 个字段是这么来的:

字段什么时候加的触发原因
录入时间最早就有台账要能对账
区域最早就有资产在哪个城市
保修到期后来加有人问「这机器还在保吗」
供应商后来加坏了要找谁
存放位置后来加「这电脑在哪」问得比「谁在用」还多
附属设备 ID后来加显示器要挂在主机名下
部门后来加要按部门汇总

请注意右边那列——没有一个字段是「我觉得应该加」的,全是有人问了、或者我自己用的时候卡住了才加的。而用起来最差的几个,共同点是「填起来麻烦」。具体数据在第六节。

管理后台全页,左侧菜单里资产管理下面是资产清单、资产盘点、标签打印等入口
▲ 它在管理后台里的位置。这篇做的资产清单是其中一项,旁边那几项是后来加的

加字段时有一件事值得单说:部门这一列我从来没手工维护过,它是从使用者名字自动反查出来的。我核实过:471 条有部门的记录里,451 条能直接从使用者反查到。维护字段最怕的是「要靠人一直记得填」——判断一个字段该怎么设计,问的不是「它重要吗」,是「它能不能自动算出来」。

由此有个直接含义:别指望一次把字段想全——我一开始只想到 9 个业务字段,现在 16 个。判断系统好不好改也不是看字段全不全,是看加一个字段要改几个地方。我这个系统里加字段就是数据库加一列,前端自动带出来,因为界面是照着字段名一个个渲染的、不认固定位置。想让这个成立,就得在提示词里交代一句:

提示词 05
我要加一个新字段叫「存放位置」,放文字。 要求: 1. 列表页不用显示它,太细了,只在点开详情的那张卡里显示。 2. 以后我还会加别的字段。所以以后再加字段的时候,不要让我改代码——加完刷新页面它就该自己出现。 3. 原来那 562 条的「存放位置」先留空,不要给它统一填一个假的值(比如每条都填「深圳」)。

第 2 条是这条里最值钱的一句,翻译成技术说法是「界面按字段名渲染、不按位置顺序」——你不用懂这个说法,「以后加字段别让我改代码」就够了。第 3 条更关键:默认值是这类系统最阴的坑——它让「非空」这个指标变得毫无意义,而这种字段在验收时看起来是最健康的:非空率 100%。我那几个默认值是随手加的,一年以后才从数据分布里看出不对。

提示词六:想知道一个字段有没有用,统计口径必须是「有实际值的」

技巧:「非空」这个指标会被默认值骗到。要判断一个字段到底有没有用,必须加一个条件:值不等于它该有的默认值。

这是全篇我最想让你记住的一条。如果你只用「非空」去统计字段有没有用,你得出的结论会是错的。

下面是各字段的实际填充情况——562 条记录里有多少条真的填了:

字段非空填充程度真实情况
资产编号562 / 562唯一,必填
资产类型562 / 562必填
品牌562 / 562必填
区域562 / 562满的,但只有 13 条真填了
状态562 / 562必填
采购金额562 / 562满的,但只有 10 条真有金额
型号550 / 562少量没填
使用者491 / 562有几十条是闲置的,没人用
部门471 / 562自动反查带出来的
备注388 / 562想起来才写
SN224 / 562只有四成有
录入时间61 / 56226 条是同一个假日期
存放位置11 / 562几乎没用起来
保修到期10 / 562几乎没用起来
供应商10 / 562几乎没用起来
附属设备 ID3 / 562有 3 条,但是脏数据

我把这张表翻出来的时候,第一眼看到的是那个绿色的 100%——然后发现是假的。两个例子:

  • 「采购金额」562 / 562,实际只有 10 条有值。最高一条 12500,其余 552 条全是 0,因为建表时默认值就是 0。用「非空」判断会得出「金额全都录入了」,进而算出总资产 0 元。这就是提示词 05 里「不要给它编一个假默认值」的实际代价。同样情况的还有「区域」——549 条是同一个城市,只有 13 条真填了。
  • 「附属设备 ID」3 条有值,但值是空字符串,不是任何真实的资产编号,功能建了一年多从没被正确使用过。它比前一个更警惕,因为它是脏数据不是缺失数据——只用非空统计你会看到「3 条有值,还有人用」,只有把值取出来看才发现是假的。这也是下面那个报表要加「取值最多的 3 个值」的原因。

还有个更隐蔽的:「录入时间」61 条只用了 24 个不同日期,其中 26 条挤在 2025-01-01(占 43%)。真实台账不该长这样。它比金额那栏难发现,因为它的值是「像真的」——0 你一眼能看出不对,一个 2025-01-01 你只会觉得「哦,那天录的」。所以正确的统计口径是「非空 且 不等于默认值 且 分布合理」,三个条件缺一个你都会被骗。

还有一件事:「必填」和「每条都有值」是两件事。SN 在我的表里是必填项,实际只有 224 / 562 填了——很多设备压根没有 SN。加必填校验之前先问一句:这个字段是不是每一条都真的有值?不然你就是在逼录入的人编假值。

提示词 06
给我做一个字段体检报表,放在管理后台里,每个字段占一行,我要能看到这几件事: - 一共多少条记录 - 填了东西的有多少条 - 里面有多少条是真填的——不是默认值,也不是 0 - 真填的占多少比例 - 填得最多的 3 个值分别是什么,各多少条 我要用这个报表判断哪些字段是白建的:填了东西但真填的比例极低,说明它有默认值,或者没人认真填。

第 3 行是关键,它把「填了东西」拆成了两层:格子里有没有字,以及那个字有没有意义。下面那句「不是默认值,也不是 0」你自己想不出来也没关系——你是看到采购金额 562 / 562、实际只有 10 条有值之后才想得到的,先做完再看报表,比一开始就想到这一层更现实。以后每加一个字段都用这个报表看一眼,三个月后真填比例还低于 10% 的字段就该砍掉。

最后说个附带功能:系统会在打开列表时自动标记离职人员的资产——使用者不在账号表里了、状态还是「在用」或「闲置」,就自动加个「(已离职)」标记、状态改成「待跟进」。这不是一开始想好的,是台账里真的攒了 29 条这种记录之后才加的:

按「待跟进」筛选后的列表,29 条记录的使用者都带已离职标记
▲ 筛选「待跟进」看这 29 条。这类记录靠人工定期查是查不出来的——人名和账号表对不上,只有系统自己比得出来

逻辑很简单,每次打开列表时逐条查「这个使用者还是 active 状态吗」。但人做不了——562 条里手工比对谁的名字已经不在了,没人会做第二次。这类「需要定期做、没人会做」的检查,是自动化最划得来的地方。

做完之后能干什么,不能干什么

这一篇讲完了。几条边界说清楚,不然容易预期错位:

它只在一台机器上跑。别人访问不了,你也不能在公司里让大家用它。

单人查看没问题,两个人同时改会冲突。要多人协作,得换方案。

没做备份,文件删了就找不回来。数据库和网页文件都在那个目录里,复制一份就是备份。

另外,这些截图是跑了一年多之后的样子。刚做完那会儿只有几个字段、几百行数据,比截图干净得多也空得多——系统真正变成什么样,是用起来之后的事。

还要说清楚:这些技巧是「拿一张表做出一个系统」这一类的。存哪、显示什么、怎么查、能不能改、怎么防重复导入、怎么判断字段有没有用——这一串问题换个表照样会遇到,答案要重新想,但顺序是一样的。

下一篇(系列第 3 篇)讲让系统管住流程:拿资产盘点举例,一个人跟到第几步、什么时候该谁处理、每一步怎么留痕。这篇做的是「查」,下一篇做「管」。

如果你手里那张 Excel 列特别乱,或者在哪一步卡住了,欢迎在页面底部的反馈区提一句。

本文为「AI 搭系统」系列第 2 篇,共 6 篇。全程本地运行,不涉及生产环境和外网发布。截图来自一个已运行一年多的真实项目,公司名、地名、人名、资产编号均已替换;文中表格的每个数字都能在这套系统的表结构、导入代码和 562 条记录里对上。

WECHAT OFFICIAL ACCOUNT

小易AI实践
持续更新:一个人 + AI 能做出什么

小易AI实践公众号二维码