跳到主要内容

TSV 转 CSV 实战指南:从表格和数据库导出到标准逗号分隔

讲清楚 TSV 转 CSV 的来龙去脉,从 Excel 和数据库导出的 Tab 分隔文本如何变成标准 CSV,字段含逗号时怎么加引号转义,以及为什么本地处理更稳妥。

发布于 作者 李雷
#TSV #CSV #数据转换 #表格

TSV 转 CSV 实战指南:从表格和数据库导出到标准逗号分隔

很多人第一次遇到 TSV 转 CSV,是在“从表格里复制了一片数据,粘到目标系统却全挤在一列”的时候。原因很简单:Excel、WPS、Google Sheets 复制多列区域时,列与列之间用的是 Tab(制表符),而大部分业务系统、CRM、财务工具、数据流水线只认逗号分隔的 CSV。两种格式长得很像,差别就在分隔符那一个字符上,但导入器对它毫不含糊。

TSV 和 CSV 到底差在哪

TSV 是 Tab 分隔值,每个字段之间用一个制表符隔开;CSV 是逗号分隔值,字段之间用逗号。Tab 当分隔符有个天然好处:正文里很少出现制表符,所以基本不用转义。逗号就没这么省心,因为正文里逗号太常见了,地址、金额、商品名称里随处可见。

所以转换不是简单地把 Tab 替换成逗号那么粗暴。如果某个单元格内容本身带逗号,直接替换会让导入器误以为多了一列,整张表的列对齐就崩了。标准 CSV 的解法是:含逗号、引号、Tab 或换行的字段,用双引号整体包起来。

字段含逗号、引号、换行时怎么转义

这是 TSV 转 CSV 最容易踩坑、也最能体现工具水平的地方。规则其实就三条:

  • 字段里有逗号:整个字段用双引号包起来,例如 北京, 朝阳区 写成 "北京, 朝阳区"
  • 字段里有双引号:字面双引号写成两个双引号,再整体加引号,例如 他说"好" 写成 "他说""好"""
  • 字段里有换行:同样用双引号包起来,让换行留在字段内部而不被当成新行。

举个具体的:原始 TSV 里一行是 张三<Tab>北京, 朝阳区<Tab>VIP,这里 <Tab> 是制表符。直接把 Tab 换成逗号会得到 张三,北京, 朝阳区,VIP,看起来像四列,地址被那个逗号劈成了两半。正确的 CSV 应该是 张三,"北京, 朝阳区",VIP,地址被引号锁住,还是三列。手动处理几行还行,几百几千行肉眼根本盯不过来。我自己以前用文本编辑器查找替换,处理一次客户名单,光是漏转义的逗号就让导入失败了三回,后来才老老实实交给专门的工具。

TSV 转 CSV 工具 会自动判断哪些字段需要加引号,逗号、引号、Tab、换行四种情况一次处理干净,不用你逐行检查。

一个真实的输入输出例子

假设你从数据库查出一段结果,复制出来是 Tab 分隔的(下面用 代表制表符):

id→name→note
1→Acme, Inc.→老客户
2→Beta Ltd→备注里有"引号"

转成标准 CSV 后是这样:

id,name,note
1,"Acme, Inc.",老客户
2,Beta Ltd,"备注里有""引号"""

注意第 1 行的 Acme, Inc. 因为含逗号被加了引号;第 2 行的备注因为含双引号,内部引号变成了两个,外层再包一层。表头 id,name,note 没有特殊字符,所以保持原样。这就是标准 CSV 该有的样子,任何符合规范的导入器都能正确读回三列。

从 Excel 和数据库导出的几种来源

实际工作里,TSV 主要来自这么几个地方:

  • 表格软件复制区域:在 Excel 或 Google Sheets 选中多列多行,直接复制,剪贴板里就是 Tab 分隔文本,粘进输入框即可。
  • 数据库客户端导出:很多 SQL 工具默认用 Tab 作为列分隔符导出查询结果。
  • 命令行输出:脚本、cutawk 这类工具的输出也常是 Tab 分隔。
  • .tsv.txt 文件:直接读取本地文件,不用先打开再复制。

这些来源有个共同问题:列数可能不齐。某些行尾巴上带着隐藏的空列,或者中间缺了字段。好的工具会对不等长的行补空单元格,让下游导入器拿到稳定的列结构,导入前最好先看一眼行列摘要,确认列数符合预期。如果你接下来还要对数据做列级处理,可以配合 CSV 列提取工具 把需要的列单独拿出来。

为什么坚持本地处理

数据转换这件事,十有八九碰的是真实业务数据:客户名单、订单明细、财务流水。这些内容上传到不明来源的在线转换站本身就是风险。TSV 解析和 CSV 导出完全可以在浏览器里跑,文件不离开本机,既快又不留痕。当然,复制出来的结果和下载的 CSV 文件,只要里面有私密记录,后续仍要按敏感数据来保管,这一步没有工具能替你省掉。

只处理几百到几千行临时数据时,打开一个页面粘贴粘贴,比专门写脚本配环境快得多。需要反向把逗号分隔转回 Tab,或者继续整理表头列名,工具箱里都有对应的页面接着用。


Made by Toolora · Updated 2026-06-13