跳到工具
ViewCSV
无需上传文件

CSV 转 TSV

orders.csv· 示例数据15 行 · 8 列
以 = + - @ 开头的值会在前面加上 ',让表格软件按文本显示。-12.5 这类普通数字不受影响。
order_id	customer	city	product	quantity	unit_price	order_date	status
001041	磊 黄	北京	Coffee beans 1kg	7	139.12	2026-01-27	pending
001042	杰 徐	北京	Coffee beans 1kg	2	132.10	2026-02-14	shipped
001043	伟 孙	上海	Notebook A5	7	129.75	2026-03-22	pending
001044	敏 杨	上海	Chair, ergonomic	1	122.25	2026-04-25	paid
001045	静 王	成都	Coffee beans 1kg	9		2026-05-15	refunded
001046	伟 黄	北京	Desk lamp	8	104.23	2026-06-06	refunded
001047	" 伟 吴 "	成都	USB-C cable	5	225.65	2026-07-08	refunded
001048	杰 李	南京	Coffee beans 1kg	7	74.98	2026-08-11	refunded
001049	磊 王	南京	"Monitor 27"""	9	223.84	2026-09-22	pending
001050	艳 吴	南京	Desk lamp	3	91.94	2026-01-02	shipped
001051	娜 刘	深圳	"Monitor 27"""	2	216.98	2026-02-18	pending
001052	磊 刘	上海	Chair, ergonomic	8	136.30	2026-03-22	pending
001053	静 张	北京	Desk lamp	4	238.82	2026-04-25	pending
001054	艳 陈	南京	USB-C cable	4	95.92	2026-05-21	paid
001043	伟 孙	上海	Notebook A5	7	129.75	2026-03-22	pending

15 行 · 1 个文件

打开或粘贴 CSV 文件,TSV 会显示在预览中;点击 下载 TSV 即可保存为 .tsv 文件。在 TSV 中,值里的逗号不需要加引号,所以大多数行输出后都是普通的制表符分隔文本。真正需要决定的只有一件事:值内的制表符和换行怎么写——给 Excel 和 pandas 用就加引号,给 PostgreSQL 用就反斜杠转义,给严格的 TSV 读取程序用就替换为空格。文件在你的浏览器中转换,不会上传。

如何把 CSV 转换为 TSV

  1. 打开 .csv、.tsv 或 .txt 文件,拖到工具上,或粘贴数据。分隔符会自动识别;如有需要,可在 导入设置 中设置分隔符,或选择 Windows-1252、GB18030 等旧编码。
  2. 在 值中的制表符和换行 下,选择读取这份 TSV 的程序所期望的写法。然后设置 换行符 和 包含表头行。
  3. 选择 输出编码,然后点击 下载 TSV,或点击 复制 复制文本。

要用相同设置转换多个 CSV 文件,请选择 批量转换多个文件。每个文件都会自动识别分隔符、把第一行当作表头读取,结果打包成一个 ZIP 一起下载。

各选项的作用

给值加引号(Excel、pandas)默认选项。包含制表符、换行、双引号或首尾空格的值会用双引号括起来,值内的引号写成两个,规则与以制表符为分隔符的 CSV 相同。其他值不加引号。
反斜杠转义 \t \n(PostgreSQL)从不加引号。制表符写成 \t,换行符写成 \n,回车符写成 \r,反斜杠写成 \\,所以每条记录都保持在一行内。这是 PostgreSQL COPY 读取的文本格式;双引号按普通字符写出。
替换为空格(严格 TSV)值内的每个制表符、换行或 CRLF 组合都替换为一个空格,使文件符合 IANA 关于字段内不得包含制表符的规定。反斜杠和引号保持不变。这会改动数据,工具会报告有多少个值受到影响。
换行符每条记录(包括最后一条)之后使用 Windows(CRLF)(默认)或 Unix/macOS(LF)。
包含表头行关闭后只写出数据行,例如要追加到已有的表格时。
防止被表格软件当作公式执行默认开启。以 =、+、-、@、制表符或回车符开头的值会被加上前缀 ',让表格软件把它们显示为文本。-12.5 这样的普通数字不受影响。如果 TSV 要导入数据库或脚本、必须保持值完全不变,请关闭此选项。
输出编码UTF-8、UTF-8 带 BOM(适合 Excel)、UTF-16 LE(带字节顺序标记)或 Windows-1252。选择 Windows-1252 时,如果有无法保存的字符(例如中文),会停止并提示是哪些字符。

特殊数据如何处理

  • CSV 中带引号的逗号在 TSV 中无需任何处理:"Desk lamp, brass" 会变成 Desk lamp, brass。
  • 多行单元格仍是一个值。加引号时,它在引号内跨越多行;使用转义时,它在一行内写成 Ships in 2 boxes\nfragile。
  • 前导零和长编号都按原样写出:TSV 没有数据类型,所以 00731 仍是 00731。
  • 使用转义时,C:\temp 这样的 Windows 路径会写成 C:\\temp,能解码转义的读取程序就能还原出原值。
  • 如果某行的值比表头多,多出的部分会放进名为 Column 4、Column 5… 的新列;比表头短的行会用空值补齐。空白表头会变成 Column 3,重复表头变成 name (2)。

常见问题排查

  • 导入时行从中间断开了。 读取程序不支持带引号的换行。如果它能解码转义,请选择 反斜杠转义 \t \n(PostgreSQL);否则请选择 替换为空格(严格 TSV)。
  • 值的开头多了一个撇号。 这是 防止被表格软件当作公式执行 在起作用。导入数据库或脚本时请关闭它。
  • 表格软件中显示了反斜杠代码。 单元格中出现 \n 或 \t,是因为表格软件不会解码反斜杠转义。给 Excel 或 LibreOffice 用的文件,请选择 给值加引号(Excel、pandas)。
  • 所有内容都挤在一列里。 输入文件的分隔符识别错了;请在 导入设置 中设置后重新打开文件。

限制与大文件

25 MB、10 万行、250 列、200 万个单元格以内的文件可实时预览。更大的文件以流式方式转换:文件分块读取两遍,第一遍找出列数最多的记录,第二遍写出,下载内容包含所有行,输出与预览中看到的一致。这类文件不能使用 复制,单个输出最大 4 GB。

在流式模式下,文件编码自动识别(UTF-8;以字节顺序标记开头时为 UTF-16),第一行当作表头。

转换在当前标签页的后台线程中进行;点击 取消 即可停止。如果只想更换分隔符、保留 CSV 的引号规则,请使用 CSV 格式调整;如果需要贴进文档的表格,请使用 CSV 转 Markdown。

示例

一份订单列表,包含引号内的逗号、两行的备注和一个像公式的值,使用默认设置转换(给值加引号(Excel、pandas),开启公式防护;这里以 LF 换行显示)。如果选择 反斜杠转义 \t \n(PostgreSQL),备注会在一行内写成 Ships in 2 boxes\nfragile,像公式的值也不再带引号。

CSV
id,product,note
00731,"Desk lamp, brass","Ships in 2 boxes
fragile"
00732,Cable tidy,"=HYPERLINK(""x"")"
TSV
id	product	note
00731	Desk lamp, brass	"Ships in 2 boxes
fragile"
00732	Cable tidy	"'=HYPERLINK(""x"")"

常见问题

CSV 和 TSV 有什么区别?

只有分隔符及其相关约定不同。TSV 用制表符分隔字段,所以值里的逗号不需要加引号。IANA 的定义禁止字段内出现制表符,这也是各工具在写法上存在分歧的原因。

PostgreSQL COPY 应该选哪个选项?

选择 反斜杠转义 \t \n(PostgreSQL),并关闭公式防护。PostgreSQL 的文本格式默认以制表符为分隔符,并会解码 \t、\n、\r 和 \\。空值会导入为空字符串,因为该格式默认的 NULL 标记是 \N;如果想把空值导入为 NULL,请在 COPY 选项中加上 NULL ''。

能把 TSV 转回 CSV 吗?

可以:在 CSV 格式调整 中打开 TSV 文件。制表符分隔符会被自动识别,你可以选择输出为逗号或分号分隔。反斜杠转义会按普通字符读取,不会被解码。

标准与参考资料