AI工作流实现Excel全自动化(支持SQL)-案例:医院门诊排班表

每天重复制作Excel表格,是很多职场人最头疼的工作之一。比如医院门诊排班表,看似简单,实则步骤繁琐:

1. 新增工作表"下周排班总览"
2. 在A1写标题"2025年第28周门诊排班表",合并A1:H1,加粗居中,字号16
3. 从第3行开始,A列写"科室",B列到H列分别写"周一"到"周日"
4. 从"医生信息表"获取所有科室(去重),每个科室占一行
5. 从"排班明细表"中,按科室+星期几填入对应医生姓名(矩阵写值)
6. 同一单元格有多个医生时用"/"分隔
7. 将"周六""周日"两列填充浅黄色
8. 给整个排班区域加全边框
9. 设置打印区域为整个排班表

这类工作要么靠人工重复,要么需要专门写VBA脚本。但现在,有了AI工作流,你只需要把这些步骤写成提示词,就可以完成Excel的任意操作。

工作流内置了 VBA Agent 与 SQL Agent,可以自动化操作Excel,还可以让表单之间进行SQL统计,零基础小白都能上手。

下面我会从一个实际案例【医院门诊排班表】入手,带大家看看这套 AI 工作流是如何完成 Excel 自动化和 SQL 统计的。看完之后,你也能快速理解整个流程该怎么用。

一、案例需求分析

医院门诊排班是一个非常典型的 Excel 制表场景。每天都会产生医生信息、科室配置、排班安排等数据,这些数据通常分散在不同工作表中。只有经过提取、去重、汇总和矩阵化展示之后,才能生成一张真正适合查看、打印和日常使用的门诊排班总览表。

本案例有 3 个原始表单:

  • 医生信息表:存放医生基础信息,包括 医生ID 、 医生姓名 、 科室 、 职称 、 诊室号 。
  • 科室配置表:存放各科室的排班配置,包括 科室 、 时段 、 最低要求人数 。
  • 排班明细表:存放具体排班数据,包括 排班ID 、 医生ID 、 医生姓名 、 科室 、 日期 、 星期 、 时段 、 诊室号 。

如图所示:

需要通过新增工作表、多表关联、字段补充、条件筛选、分组排序、汇总统计、计算字段和格式设置等一系列操作,最终生成下面多个结果表单。

1、制作表单一:下周排班总览

这个表单制作需要进行下面操作:

  1. 新增工作表"下周排班总览"。
  2. 在 A1 写标题"2025年第28周门诊排班表",合并 A1:H1,加粗居中,字号 16。
  3. 从第 3 行开始,从"排班明细表"按科室升序、然后按日期升序,把每条排班记录列出来,包含字段:"科室、日期、星期、时段、医生姓名、诊室号"。
  4. 表头在第 3 行,数据从第 4 行开始。
  5. 当"星期"为"周六"或"周日"时,整行字体填浅黄色背景。
  6. 给整个排班数据区域加全边框。
  7. 设置打印区域为标题行加排班数据区域。

工作流跑出的结果表单如图所示:

2、制作表单二:科室人力不足预警

这个表单制作需要进行下面操作:

  1. 新增工作表"科室人力不足预警"。
  2. 在第1行写表头"科室、日期、时段、排班人数、最低要求人数、缺口"。
  3. 从"排班明细表"按"科室+日期+时段"汇总排班人数。
  4. 从"科室配置表"关联"最低要求人数"。
  5. 新增"缺口"列,值=最低要求人数-排班人数(负数表示超编,正数表示缺人)。
  6. 只保留"缺口>0"的记录。
  7. 按"缺口"降序排序。
  8. 将"缺口>=2"的行填充浅红色。
  9. 给结果区域加全边框。
  10. 表头加粗。

工作流跑出的结果表单如图所示:

3、制作表单三:医生工作量统计

这个表单制作需要进行下面操作:

  1. 新增工作表"医生工作量统计"。
  2. 在第1行写表头"医生ID、医生姓名、科室、本周排班次数、上午班次、下午班次、夜班次数"。
  3. 从"排班明细表"按"医生ID"汇总各时段班次。
  4. 按"医生ID"关联"医生信息表",补"医生姓名、科室"。
  5. 按"本周排班次数"降序排序。
  6. 将"夜班次数>=3"的行加粗显示。
  7. 将"本周排班次数>=6"的行填充浅橙色(工作量过大预警)。
  8. 给结果区域加全边框。
  9. 冻结首行。

工作流跑出的结果表单如图所示:

4、制作表单四:专家门诊时间表

这个表单制作需要进行下面操作:

  1. 新增工作表"专家门诊时间表"。
  2. 在A1写标题"专家门诊出诊时间表",合并A1:F1,加粗居中。
  3. 从"医生信息表"筛选"职称=主任医师"或"职称=副主任医师"的医生。
  4. 从第3行开始写表头"医生姓名、职称、科室、出诊日期、时段、诊室号"。
  5. 按"医生ID"关联"排班明细表",获取排班信息。
  6. 按"科室"分组,同科室内按"出诊日期"升序排列。
  7. 同一科室的第一行"科室"列向下合并单元格。
  8. 给结果区域加全边框。
  9. 表头填充浅蓝色并加粗。

工作流跑出的结果表单如图所示:

5、制作表单五:排班冲突检查

这个表单制作需要进行下面操作:

  1. 新增工作表"排班冲突检查"。
  2. 在第1行写表头"医生ID、医生姓名、冲突日期、冲突时段、排班次数、涉及科室"。
  3. 从"排班明细表"按"医生ID+日期+时段"汇总,找出排班次数>1的记录(即同一医生同一时段被排了多次)。
  4. 按"医生ID"关联"医生信息表",补"医生姓名"。
  5. 将所有冲突行填充浅红色并加粗。
  6. 给结果区域加全边框。
  7. 在结果表下方空2行,写"冲突总数:"及统计数字。

工作流跑出的结果表单如图所示:

二、工作流原理

DTBot工作流 将整个Excel操作步骤描述都交给“Excel脚本执行器”这个智能体,在执行过程中,喂给 AI 的只有表格的表头任务提示词,而不是整表原始数据,因此数据是绝对安全的。

真正的动作处理都是在本地完成,包括了“公式执行,VBA脚本代码执行,SQL执行”。

工作流核心的2个智能体:

  • 文件助手
  • Excel脚本执行器

只用这2个智能体就可以完成所有的工作,下面我来一一介绍这2大智能体。

1.1 文件助手

”文件助手“是用来对磁盘文件进行操作的,只需输入提示词描述,如下案例:

  • 创建文件夹: 在 F:\data 下新建文件夹 reports
  • 写入文件: 向 F:\data\readme.txt 写入“hello”,存在则覆盖
  • 复制文件: 复制 F:\data\a.csv 到 F:\data\backup\a.csv,覆盖旧文件
  • 移动文件: 移动 F:\data\tmp\b.xlsx 到 F:\data\archive\b.xlsx
  • 重命名: 将 F:\data\old.csv 重命名为 new.csv(同目录)
  • 列出文件: 列出 F:\data 下前 5 个 csv 或 xlsx 文件
  • 查找文件: 查找文件名匹配 report_\d+.xlsx 的文件,最多5个
  • 计算哈希: 计算 F:\data\file.zip 的 SHA-256 哈希值
  • 压缩文件: 将 a.csv 和 b.csv 打包成 F:\data\csv.zip,允许覆盖
  • 解压文件: 解压 csv.zip 到 F:\data\unzipped,不覆盖已有文件

”文件助手“ 内置了Python Agent, 通过AI将你的提示词进行理解成python代码,然后通过内置的python执行引擎去执行,全程无需你关心。

考虑到数据安全,我们移除了不安全的代码操作,比如:删除,网络下载,执行系统命令等,文件助手只能对文件进行操作,其他的都是非法!!

通过文件阻助手,我们就可以获取到要进行数据清洗统计的源表格文件,然后给后续智能体使用,如下配置图:

1.2Excel脚本执行器

”Excel脚本执行器“ 负责翻译用户任务语义,通过意图处理器将任务先分为三个大类:

  • 公式类步骤
  • VBA脚本步骤
  • SQL步骤

然后通过内置的智能体分别完成所有的步骤。整个过程用户无需关心,只需要描述提示词即可。

三、落地:工作流配置

1、整理提示词

需要说明一点:提示词不一定非要写成固定模板 。只要表达得 清晰 、 明确 、 简洁 ,让人一眼能看懂要做什么、按什么顺序做,就可以了。

为了逻辑清晰,我们将案例的5张表的制作,分成5个部分,就像一个文章包含多个章节。下面是我整理好的提示词:

第一步:制作“下周排班总览” 1. 新增工作表"下周排班总览"。 2. 在A1写标题"2025年第28周门诊排班表",合并A1:H1,加粗居中,字号16。 3. 从第3行开始,A列写"科室",B列到H列分别写"周一"到"周日"。 4. 从"医生信息表"获取所有科室(去重),每个科室占一行。 5. 从"排班明细表"中,按"科室+星期几"填入对应医生姓名(矩阵写值)。 6. 同一单元格有多个医生时用"/"分隔。 7. 将"周六""周日"两列填充浅黄色。 8. 给整个排班区域加全边框。 9. 设置打印区域为整个排班表。 第二步:制作“科室人力不足预警” 1. 新增工作表"科室人力不足预警"。 2. 在第1行写表头"科室、日期、时段、排班人数、最低要求人数、缺口"。 3. 从"排班明细表"按"科室+日期+时段"汇总排班人数。 4. 从"科室配置表"关联"最低要求人数"。 5. 新增"缺口"列,值=最低要求人数-排班人数(负数表示超编,正数表示缺人)。 6. 只保留"缺口>0"的记录。 7. 按"缺口"降序排序。 8. 将"缺口>=2"的行填充浅红色。 9. 给结果区域加全边框。 10. 表头加粗。 第三步:制作“医生工作量统计” 1. 新增工作表"医生工作量统计"。 2. 在第1行写表头"医生ID、医生姓名、科室、本周排班次数、上午班次、下午班次、夜班次数"。 3. 从"排班明细表"按"医生ID"汇总各时段班次。 4. 按"医生ID"关联"医生信息表",补"医生姓名、科室"。 5. 按"本周排班次数"降序排序。 6. 将"夜班次数>=3"的行加粗显示。 7. 将"本周排班次数>=6"的行填充浅橙色(工作量过大预警)。 8. 给结果区域加全边框。 9. 冻结首行。 第四步:制作“专家门诊时间表” 1. 新增工作表"专家门诊时间表"。 2. 在A1写标题"专家门诊出诊时间表",合并A1:F1,加粗居中。 3. 从"医生信息表"筛选"职称=主任医师"或"职称=副主任医师"的医生。 4. 从第3行开始写表头"医生姓名、职称、科室、出诊日期、时段、诊室号"。 5. 按"医生ID"关联"排班明细表",获取排班信息。 6. 按"科室"分组,同科室内按"出诊日期"升序排列。 7. 同一科室的第一行"科室"列向下合并单元格。 8. 给结果区域加全边框。 9. 表头填充浅蓝色并加粗。 第五步:制作“排班冲突检查” 1. 新增工作表"排班冲突检查"。 2. 在第1行写表头"医生ID、医生姓名、冲突日期、冲突时段、排班次数、涉及科室"。 3. 从"排班明细表"按"医生ID+日期+时段"汇总,找出排班次数>1的记录(即同一医生同一时段被排了多次)。 4. 按"医生ID"关联"医生信息表",补"医生姓名"。 5. 将所有冲突行填充浅红色并加粗。 6. 给结果区域加全边框。 7. 在结果表下方空2行,写"冲突总数:"及统计数字。

下面我们来配置工作流。

2、配置文件助手

”文件助手“ 可以用来获取磁盘上任意的一个或多个文件。打开DT-Bot工作流, 配置一个 “文件助手”智能体节点,描述原始数据文件位置,如图:

DT-Bot工作流,解决方案获取:宫中&气: “老罗软件”。

文件助手可以获取一批Excel文件, 处理的话就是批量处理,这里测试,我就测试一个文件。根据上图描述,工作流就拿到了这个待处理的excel文件,

然后会输出这个文件,给后续智能体使用。

3、配置Excel脚本执行器

然后我们连接上 “脚本执行器”,输入整理好的提示词的第一步,如下图所示:

“脚本执行器” 会对输入文件进行执行,执行后会生成一个新的xlsx文件输出。

同理,然后用 “脚本执行器” 配置第二步,如下图:

其余的步我就步一一说明了,配置完成后,我们发布工作流执行就可以了。

四、结尾语

这套 AI 工作流真正改变的,不只是做表的方式,更是处理数据的方式。过去需要手工整理、反复核对、临时写脚本的工作,现在只需要一句清晰的提示词,就能交给智能体自动完成。无需写 VBA,无需懂 SQL,零基础也能轻松上手。无论是电商订单分析,还是日常报表处理,都可以按照同样的思路快速复用,让数据处理从“重复劳动”真正升级为“自动流程”。