如何不用 Visio 把 CSV 转成流程图

直接用系统导出的 CSV 重建一张 Data Visualizer 流程地图:Visio 的哪一列对应表格里的哪一列、向导为什么从来不收 .csv,以及怎样给 Next Step ID 重新编号。

一张 Data Visualizer 的表不过就是一些行,而这些行在 Excel 见到它们之前通常是一份 .csv——所以这次转换是改一遍表头、把 Next Step ID 重新编号成行的位置,再检查一下文件的分隔符、引号和编码。

简而言之

  • .csv 到 .xlsx 的那趟往返消失了:把导出的文件拖到表格区域上,或者把文本粘贴进去。
  • 表头就是映射——Process Step Description 到方框文字,Next Step ID 到连线到,Connector Label 到连线文字,Shape Type 到形状。
  • Function 变成纵向泳道列,Phase 变成横向泳道列;每一个不同的取值就是一条泳道。
  • 逗号分支的约定一模一样:连线到里的“6,4”配上连线文字里的“一致,价格或数量有出入”,按位置配对。
  • 唯一真正需要转换的是编号——连线到装的是行的位置,不是 Process Step ID。

加载项退场之后,导出文件保住了什么

Excel 版 Visio Data Visualizer 加载项于 2025 年 11 月在 Microsoft 365 博客上被宣布退役,服务关停日期定为 2026 年 3 月 2 日,微软在 2025 年 12 月重申该日期不变。此后没有任何公开信息确认关停已经执行,也没有任何信息推翻它——两篇加载项支持文档都仍然在线,措辞仍然是将来时。而被宣布的范围也比人们以为的窄:退役的是加载项,不是 Visio 桌面版里的 Data Visualizer 模板,后者没有任何退役通告,文档上写明仅限 Visio Plan 2。/zh/guides/visio-data-visualizer替代工具 把这层区分讲全了。本页处理务实的另一半——你手上有一张表,你想把图拿回来。

多数情况下,那张表的出身并不在 Excel。它来自一套 ERP、一个服务台、一个工作流工具或一次数据库查询,到手时是一份 .csv,只是因为向导非要如此,才有人把它打开并格式化成了一张表。Visio 的“从数据创建图表”向导要的是一个工作簿,然后是工作簿里的一张表或一个命名区域;.csv 两样都不是,改扩展名也改变不了这一点。所以这次迁移首先给你省掉的是一个环节:在图存在之前,不必再走一趟 .csv 到 .xlsx 的往返。QueryChart 的编辑器就是一张表格,文件直接落上去——把 .csv 拖到表格区域上,或者把 CSV 文本粘贴进去。没有导入向导,也没有列映射界面,因为表头行就是映射。

这些列几乎是一一对应的。Process Step Description 对应方框文字,Next Step ID 对应连线到,Connector Label 对应连线文字,Shape Type 对应形状,Function 对应纵向泳道列,Phase 对应横向泳道列。匹配依据是表头名称而不是列的位置,所以导出文件写成什么顺序都无关紧要,而任何不被识别的表头——Process Step ID、Alt Description、周期时间、系统名——都会留在文件里并被忽略。真正需要转换而不是照抄的只有一样:Next Step ID 写的是一个 ID,而连线到取的是一行从 1 开始的位置,所以原本不是按 1、2、3 排下来的 ID 必须重新编号。

其余的都是纯文本格式收的税。你的系统选了什么分隔符、写了什么编码,以及那些自带逗号的字段外面的引号:一个写着 6,4 的分支单元格,只有包在双引号里才能在逗号分隔的文件里活下来,而这一个细节毁掉的转换,比任何流程逻辑上的问题都多。/zh/guides/流程图csv文件结构 是这方面的文件形状参考。下面这个示例是一份从 ERP 导出的从订单到交付的地图——也就是 /zh/templates/csv流程地图 背后的那张图——按各列应当落地的顺序分四个阶段重建。这次迁移不会丢东西:加载项画出来的一切本来就是从这些列推导出来的,所以一张在 Visio 里能画出正确图形的表,在这里画出来的是同一张图。

一张 Data Visualizer 的表,从它的 CSV 重建出来

一条从 ERP 导出的从订单到交付流程,一次落地一组列。打开表格面板,挨着画布读这些列。

  1. 描述与形状

    进来六行,方框文字和 Shape Type 已经对应过去,别的什么都没有。“客户发来采购订单”是开始,“订单行与报价是否一致?”已经是一个菱形,而“发货前订单已取消”是一个拒绝,不是一支指向空白的箭头。Data Visualizer 的 Start、Process、Decision 和 End 按原样落地;Subprocess 对应到流程。

  2. Next Step ID 重新编号成连线到

    那些 ID 被改写成行的位置之后,连接就到齐了。第 8 行“订单是否在信用额度以内?”分向 11 和 9,而第 14 行“是否先发有货的行?”指回第 12 行去等齐整单。一支回溯连线不过是单元格里一个更小的数字,这也正是循环能完好地熬过一次 CSV 导出、却从来熬不过一次重画的原因。

  3. Connector Label 进入连线文字

    分支标签填上了,而配对约定就是你早已用过的那一套:第 3 行以“一致,价格或数量有出入”对上“6,4”,第 20 行“货物是否被全额签收?”带的是“全额签收,破损或短少”。把标签绑到目标上的是位置,在 CSV 里和在加载项里完全一样,所以一对顺序颠倒的配对是错的,却看不出错在哪。

  4. Function 和 Phase 成为泳道

    最后两列落地:Function 里的客户、销售、仓库、财务和承运商进入纵向泳道,Phase 里的订单录入、信用审核、库存分配、拣货与打包、发运与在途以及开票与结案进入横向泳道。二十六行、五个角色、六个阶段,没有拖动过任何一个图形。落在财务的信用未通过和落在销售的索赔,现在明明白白是两个团队各自负责的两种不同失败。

运作方式

  1. 导出那张表,而不是那张图

    加载项渲染出来的那张画不是资产,它下面那张表才是。请把那张表导成 .csv——从喂给加载项的那个工作簿导,或者干脆从工作簿自己复制自出的那个系统里直接导,后者通常是更好的来源,因为它没有被人手工重排过格式。顺手检查三件事:只有一行表头、一行一个步骤,以及整个区域里没有任何合并单元格。

  2. 用纯文本编辑器读这份文件的第一行

    在粘贴任何东西之前,先把 .csv 当文本打开看表头行。你要看的是哪个字符分隔字段、取值有没有用双引号包住,以及带重音或非拉丁字母的标签有没有熬过编码这一关。欧洲区域设置的导出文件常常是分号分隔的,因为逗号在那里是小数点,而这对两步之后的分支列有直接后果。

  3. 把表头改成编辑器的列名

    匹配依据是表头名称而不是位置,所以整套映射就是对第一行的一次编辑:Process Step Description 改成方框文字,Next Step ID 改成连线到,Connector Label 改成连线文字,Shape Type 改成形状,Function 改成纵向泳道,Phase 改成横向泳道。其余的列一律留在原处。Process Step ID、Alt Description 以及导出文件输出的任何别的东西,都会留在文件里并被忽略,也就是说你不必先给一份很宽的导出文件做修剪才能载入。

  4. 把连接重新编号成行的位置

    连线到按一行从 1 开始的位置寻址,而 Next Step ID 按一个 ID 寻址步骤,那个 ID 常常是 10、20、30 或者一个系统键。请先把行序定死并当作最终版,然后建一张从 ID 到位置的对照表,把每一个 Next Step ID 值都通过它改写一遍,包括一对逗号分隔的值里的每一项。本来就按 1、2、3 顺序排下来的 ID 什么都不用做。其余的都要做这一步,而跳过它,得到的是一张箭头自信满满地错着、却看不出坏了的图。

  5. 给含逗号的字段加引号

    一个写着“6,4”的连线到值和一个写着“一致,价格或数量有出入”的连线文字值,都含有逗号分隔文件的分隔符。它们必须待在双引号里面,否则这一行会悄悄多出几列并丢掉分支。用“另存为 CSV UTF-8”时 Excel 会写出这些引号;由报表工具或 shell 脚本拼出来的文件往往不会。如果导出文件本来就是分号分隔的,那么这些字段里的逗号只是普通数据,不需要加引号——这正是你在动手之前先看第一行的原因。

  6. 把文件拖到表格上,修掉它暴露出来的东西

    新建一张图表,把 .csv 拖到表格区域上或者把文本粘贴进去,图就从这些行画出来了。然后读它,找那两个表能藏住、而画布藏不住的毛病:一个没有后继的步骤,和一个只有一个出口的判断。请在行里改正它们;如果这张地图还要给别人依据,就让它走一遍评审,好让大家打开的是那个已获批准的版本。

应避免的错误

  • 把 Next Step ID 原封不动地粘过来

    它是唯一一列不能照抄的。一份 26 行的文件里,一个值为 40 的 Next Step ID 谁也不指向;而一组按 10、20、30 排下来的 ID 会悄悄指向错误的行——每一支箭头都落在一个看着合理的地方,什么都不像坏了。请在导入之前重新编号,而不是导入之后。

  • 把分号一律替换成逗号

    对付分号分隔导出文件的标准做法,会毁掉分支列,因为连线到和连线文字确实在单个字段里含有逗号。请以逗号分隔并带正确引号重新导出,或者用一个懂引号规则的工具来转换。对整份文件做查找替换,是那种看着有效直到你去数箭头的做法。

  • 重新编号之后又给行排了序

    一旦连线到装的是行的位置,行的顺序就是每个步骤的身份。为了整洁而按负责人或阶段给 CSV 排序,一个动作就把整张图重新接线了,而且画出来的图连贯到没有人会察觉。请先排序,再编号,然后就别再动顺序。

  • 以为整个 Data Visualizer 都退役了

    那份公告涵盖的是 Excel 版加载项。Visio 桌面应用里的 Data Visualizer 模板没有任何退役通告,而微软自己推荐的替代方案正是配合该桌面应用的 Visio Plan 2——撰写本文时按年付费的目录价是每用户每月 15 美元。如果你已经在 Plan 2 上、又在 Windows 上,那是阻力最小的路,你应该走。macOS 上没有 Visio 桌面应用,而网页版 Visio 拒绝编辑数据连接的图表,所以在 Mac 上这条路并不存在。

重建你的 Data Visualizer 表

打开从订单到交付这个示例,看看这些列是怎么对应过来的,然后把你自己导出的 .csv 拖上去覆盖它们。

重建你的 Data Visualizer 表

相关指南

常见问题

Visio Data Visualizer 加载项真的没了吗?

它于 2025 年 11 月在 Microsoft 365 博客上被宣布退役,服务关停日期定为 2026 年 3 月 2 日,微软在 2025 年 12 月重申该日期不变。此后微软没有发布任何信息确认关停已经执行,也没有推翻它,而两篇加载项支持文档都仍然在线,措辞仍是将来时。请把这个加载项当成不该再往上建东西的对象,而不是当成一件已成定论的事。Visio 桌面应用内部的 Data Visualizer 模板是另一项功能,不在那份公告范围内,文档上写明仅限 Visio Plan 2。

Visio 为什么从来不肯直接收我的 .csv?

“从数据创建图表”向导要的是一个 Excel 工作簿,然后是里面的一张表或一个自定义区域。.csv 两样都不是,改扩展名也变不成,所以文档给出的答案一直是先另存为 .xlsx。人们记得并进而过度推广的那个例外是组织结构图向导,它确实读逗号和制表符分隔的 .txt 文件——但它做的是组织结构图,不是流程图,而 /zh/guides/从csv创建组织结构图 单独讲了那种形状的数据。

逗号分隔的分支写法能沿用吗?

几乎原样沿用。一个写着“一致,价格或数量有出入”的 Connector Label 就是一个合法的连线文字值,而两个工具里标签与目标都是按位置配对的,所以这套约定没有什么需要重新学。唯一变的是目标是什么:Next Step ID 装的是步骤 ID,连线到装的是从 1 开始的行位置。请转换数字,保留逗号,保留顺序。

我的 Function 和 Phase 列会怎样?

Function 进入纵向泳道列,Phase 进入横向泳道列,每一个不同的取值成为一条泳道,步骤自动就位——和跨职能 Data Visualizer 模板给你的行为一样。值得知道的是:基础版 Data Visualizer 模板根本不读表里的 function 和 phase 列,所以如果你的源数据里这两列是有值的、而你原来的图是平的,那你即将得到一批你本来就有数据支撑的泳道。

我能不能再导出一个 .vsdx 文件?

不能。导出格式是 PNG、SVG 和 PDF,没有 .vsdx 写出器,所以如果下游有系统消费 Visio 文件——一条 SharePoint 流水线、Power BI 的形状数据、一套要求 .vsdx 的文档集——那个要求指回的是 Visio Plan 2,这个工具不适合它。对那些最终落进文档、幻灯片、知识库和审计材料的地图,图片和 PDF 格式就够了,而图表本身作为一些行,始终是活的、可编辑的。

本指南所用的模板

CSV 流程地图模板(从订单到交付) — 把 ERP 的订单导出文件变成一张端到端的流程地图:六个阶段列、五条泳道,一次信用挂起、一次分批发货、一个拣货差异循环、一次交付索赔,以及一张追到付清为止的发票。

CSV 流程地图(从订单到交付,源自 ERP 导出文件): 订单录入 → 信用审核 → 库存分配 → 拣货与打包 → 发运与在途 → 开票与结案
如何不用 Visio 把 CSV 转成流程图