如何把 Excel 数据变成 Visio 流程图

生成一张 Visio 流程图所依据的那几个 Excel 列:Process Step ID、Process Step Description、Next Step ID、Connector Label 和 Shape Type——以及按位置把 ID 与标签配对的分支约定。

Visio 从一张 Excel 表生成流程图的条件是:每一行都有唯一的 Process Step ID,在 Next Step ID 里写着紧随其后那个步骤的 ID,而在步骤分叉的地方,Connector Label 里用逗号分隔地为每条出口写一个标签。

简而言之

  • “Process Step ID”是必填列,而表中每一个值都必须唯一且不为空。
  • “Next Step ID”里放的是序列中下一个图形的 Process Step ID——就这一列,把清单变成了流程。
  • 会分叉的步骤在“Next Step ID”里放多个 ID,并在“Connector Label”里放用逗号分隔的对应标签——两者按位置配对。
  • 职能列和阶段列只对跨职能流程图有效;基础流程图会无视它们。
  • 如果你想让图表和数据保持同步,就把源数据做成 Excel 表格,而不是自定义区域。

流程图先是一种数据结构,然后才是一张图

流程图里的每个方框都需要三样东西:一个文件里别处不会重名的名字、一个指向下一个方框的指针,以及——当一个方框有多个出口时——每个指针上写明它对应哪种情况的标签。整个模型就是这些,而这也正是 Visio 的 Create Diagram from Data 向导从一张 Excel 表里读出来的东西:“Process Step ID”“Process Step Description”“Next Step ID”“Connector Label”和“Shape Type”。把这五列弄对,画图就只是走个形式,因为向导会替你摆好图形、画好连接线并加上标签。弄错一个单元格,它会把错的流程画得同样整齐。

关于这张表要送到哪里,有两点要说。读它的那些 Data Visualizer 模板——“Basic Flowchart - Data Visualizer”“Cross-Functional Flowchart - Data Visualizer”和“Audit Diagram - Data Visualizer”——住在 Visio 桌面版应用里,Microsoft 把它们记载为仅在 Visio Plan 2 中可用,撰稿时该计划的标价是每用户每月 15 美元、按年付费。另有一个曾在 Excel 内部运行的独立 Visio Data Visualizer 加载项,是同名的另一个产品:Microsoft 在 2025 年 11 月宣布停用它,并把服务关闭日期定在 2026 年 3 月 2 日。/zh/guides/如何使用visio-data-visualizer 谨慎地讲了这个状态。不管走哪一边,表都是同一张。

还有两个决定,直接关系到这张表能不能用。第一,把它做成真正的 Excel 表格,而不是一块选中的单元格。向导第一页会接受“一个表格或一个自定义区域”,所以区域不会报错——它只是悄悄让你放弃了让图表与数据保持一致,而这正是 Microsoft 的指引写作“如果你想让图表和数据保持同步,请使用 Excel 表格而不是自定义区域”的原因。第二,Microsoft 提供的工作簿里那两列职能和阶段只对跨职能流程图有效,基础流程图会无视它们,所以画一条普通流程时把它们留空不会有任何损失。

下面的实例是一条出差申请与审批,形状和那张表一样:一个步骤一行,一列写明每一步通向的行号,一列按位置与它配对的分支标签,再加一列图形。它是同一种数据结构,只是列名不同——而这恰恰是重点:在 QueryChart 里,行本身就是图表,而不是图表由它生成的一份源数据,所以没有那个能把公式压平的写回环节。逐个查看下面四个阶段,看这些列一列一列地到位。那个顺序,就是你该填自己那张表的顺序。

同一张表,一列一列来

一条出差申请与审批,逐列拼装起来。打开表格面板,看看每个阶段填的是哪一列。

  1. 一个 ID 和一段描述

    两行,各自只有自己的位置和自己的文字:“提交出差申请并填写日期与事由”和“估算差旅总费用”。在 Microsoft 的工作簿里,这两样就是 Process Step ID 和 Process Step Description,而一行严格说来只需要这些就能存在。

  2. 指向下一步的那个指针

    填上相当于 Next Step ID 的东西,才让这变成流程而不是清单。“出差是否符合差旅制度?”现在带着两个 ID,一个走向例外那一步,一个把它跳过去,而分叉就在第二个值落进单元格的那一刻出现。

  3. 分支上的标签,行上的图形

    “财务是否批准升级后的费用?”有三条出口,顺序是:批准、仅限更省方案、不批准。中间那条就是回环——它指回“估算差旅总费用”重新核算。这正是 Connector Label 约定在起作用:三个 ID、三个标签,按位置配对,而顺序就是告诉你谁是谁的东西。

  4. 基础流程图会无视的那两列

    最后两列把每个步骤放进一个阶段、并落到一个负责人名下,扁平的流程图就变成了跨职能的——员工、直属主管、差旅服务台、财务。在 Microsoft 的工作簿里,这两样就是职能列和阶段列,而 Basic Flowchart 图表会读到它们、然后丢掉。

运作方式

  1. 从 Visio 内部取用起始工作簿

    打开 Visio,如果你已经在编辑一张图,就选择 File > New。选择 TEMPLATES,然后 Flowchart,然后“Basic Flowchart - Data Visualizer”。在模板预览里选择“Excel data template”,拿到 Microsoft 提供的、列标题已经写好的工作簿,并选一个度量单位。请这样做,而不要去追支持文章里那些示例工作簿链接:那两个短链接现在都会跳到 Bing 而不是一个文件。Data Visualizer 模板被记载为仅限 Visio Plan 2。

  2. 把数据做成表格,而不是区域

    在你走近向导之前,先把这块数据设置成 Excel 表格。向导第一页会要你“选择 Excel 工作簿”,然后“在工作簿中选择一个表格或一个自定义区域”,所以区域会被毫无异议地接受——但 Microsoft 自己的指引是“如果你想让图表和数据保持同步,请使用 Excel 表格而不是自定义区域”。选了区域,正是有些人几个月后才发现 Refresh Diagram 对自己从一开始就不可能生效的原因。

  3. 给每一行一个唯一的 Process Step ID

    这是必填列,也是带着一条规则的那一列:“Excel 表中每个值都必须唯一且不为空”。这些 ID 就是步骤的身份,也是 Next Step ID 唯一被允许指名的东西,所以请用简短稳定的值——1、2、3 或 A10、A20——并且删掉一行之后绝不重用它的 ID。在向导的 Process Steps 页上,这一列就是你映射到“Process Step ID / Activity ID”的那个。

  4. 把图形文字写在 Process Step Description 里

    Microsoft 把这一列描述为“加进流程图中每个图形的文字”,所以单元格里是什么,读者在方框里看到的就是什么。一行只写一个动作,并把判断写成问句,因为一个装着名词的菱形是没法回答的。它在同一个向导页上映射到“Process Step / Activity Description”,那一页还带一个用于替代文字的 Accessibility 区域。

  5. 让每一行指向前方,并给每条分支起名

    Next Step ID 里放的是“序列中下一个图形的 Process Step ID”。当一个步骤分叉时,把所有后继 ID 都放进那个单元格,并在 Connector Label 里为每一个放一个标签,Microsoft 把这一列记载为“对于分支图形,连接线标签以逗号分隔的文本表示”。两个列表按位置配对:ID 是 5 和 4、标签是“符合制度,超出制度”,就会把“符合制度”放在通向 5 的箭头上。向导的 Connections 页是你确认 Delimiter 和 Connector Label 映射的地方。

  6. 设好 Shape Type,只在需要泳道时才加职能和阶段

    Shape Type 是“你想在 Visio 图表中呈现的图形类型”,在向导的 Shape Types 页上映射,而这个映射并不局限于流程图形状库:Microsoft 确认你可以“把流程数据映射到 Visio 中的任意形状库”来创建图表。只在做跨职能流程图时才填职能列和阶段列——见 /zh/guides/用visio制作跨职能流程图 ——然后点创建和 Finish。/zh/guides/用visio从excel创建流程图 走的是那五个向导页本身。

应避免的错误

  • Process Step ID 为空或重复

    规则写得很明确——每个值都必须唯一且不为空——因为这个 ID 是 Next Step ID 唯一能指名的东西。重复会让“下一个”变得含混,而空着的行按构造就无法到达。请在 Excel 里查重之后再跑向导,而不是事后去读那些图形。

  • 标签和 ID 顺序错位

    Connector Label 是按位置与 Next Step ID 配对的,所以 ID 写“5,4”而标签写“超出制度,符合制度”,得到的图整齐、易读,并且恰好在任何人都会依赖的那条分支上是错的。这是整个流程里最容易出错的一个单元格。把每一个分叉行出声念一遍,第一个 ID 对第一个标签。

  • 该放表格的地方放了自定义区域

    向导接受区域,所以当时不会有任何提示。你悄悄放弃掉的是同步——Microsoft 把“让图表与数据保持一致”这件事系在使用表格上。请在生成之前把区域转成表格,而不是生成之后。/zh/guides/用excel更新visio流程图 讲了刷新之后你能换到什么,而如果这些行是从一个 Sheet 或一份台账导出来、而不是在这里手打的,/zh/guides/从电子表格创建visio流程图 讲了那次转换。

  • 源数据里有公式

    Microsoft 说得很直白:“不要在 Excel 数据源中使用公式。在 Update Source Data 对话框中选择 Overwrite 之后,Visio 会把公式转换为公式结果。”一个从别处拼出 Next Step ID 的查找函数,会在你第一次从图表写回时被它自己的输出替换掉。请在另一个工作表里算,然后把值粘到源数据表里。

把这张表做成可用的图表

把出差申请示例作为您自己的图表打开,看这些列已经怎么填好,然后把您自己的行粘贴上去。

把这张表做成可用的图表

相关指南

常见问题

做一张 Visio 流程图,Excel 需要哪些列?

在 Microsoft 提供的工作簿里是五列。“Process Step ID”是必填的,每个值都必须唯一且不为空。“Process Step Description”是加进每个图形的文字。“Next Step ID”里放的是序列中下一个图形的 Process Step ID。“Connector Label”为分支图形的各条出口命名,以逗号分隔的文本表示。“Shape Type”说明画哪个图形。另外还有职能列和阶段列,但它们只对 Cross-Functional Flowchart 图表有效,Basic Flowchart 图表会无视它们,所以一条普通流程需要的是那五列。

在 Visio 的 Excel 模板里怎么做一个是/否判断?

把两个后继 ID 都放进那一行的 Next Step ID 单元格,把两个标签都放进它的 Connector Label 单元格,用逗号分隔。Microsoft 的措辞是,对于分支图形,“连接线标签以逗号分隔的文本表示”。两个列表按位置读取,所以第一个 ID 拿到第一个标签——ID 写“9,7”、标签写“批准,不批准”,就会把“批准”送到 9。没有任何东西会检查这个配对是不是你想要的,所以配错了就会得到一张看着合理、但分支被调换了的图。请在向导的 Connections 页上确认分隔符,并在生成之前把每一个分叉行重读一遍。

源数据必须是 Excel 表格,还是区域也行?

两者都会被接受。向导第一页要你“在工作簿中选择一个表格或一个自定义区域”,所以区域也能好好地生成一张图。后果出现在后面:Microsoft 的指引是“如果你想让图表和数据保持同步,请使用 Excel 表格而不是自定义区域”,也就是说选区域是在悄悄放弃从工作簿刷新图表、以及把改动写回工作簿。既然把区域转成表格只要一会儿,而把一张画完的图转过来要久得多,那就先把它做成表格。

从电子表格生成流程图需要 Visio Plan 2 吗?

走这条路线是需要的。Microsoft 把 Data Visualizer 模板和 Create Diagram from Data 向导都记载为仅在 Visio Plan 2 中可用,撰稿时其标价是每用户每月 15 美元、按年付费,而它也是唯一包含这个向导所在的桌面版应用的订阅层级。在更低的层级上,你可以在 Visio 网页版里手画一张基础流程图,但那里没有任何东西能从一张表生成它。QueryChart 是同一种数据结构,只是少了许可这一步:在浏览器里、带一列下一步的行,任何操作系统上都行,而行始终是唯一的事实来源。

本指南所用的模板

Excel 转流程图模板(出差申请与审批) — Excel 转流程图模板,以跨职能的出差申请与审批流程呈现:五个阶段、四条泳道、一道制度关卡、一个超限即升级给财务的费用门槛,以及会把不齐全的报销单退回的票据检查。

Browse all Excel、CSV、Visio 和数据驱动图表指南

Excel 转流程图(出差申请与审批): 申请 → 审批 → 预订 → 出行 → 报销
如何把 Excel 数据变成 Visio 流程图