打开或粘贴 CSV 文件,TSV 会显示在预览中;点击 下载 TSV 即可保存为 .tsv 文件。在 TSV 中,值里的逗号不需要加引号,所以大多数行输出后都是普通的制表符分隔文本。真正需要决定的只有一件事:值内的制表符和换行怎么写——给 Excel 和 pandas 用就加引号,给 PostgreSQL 用就反斜杠转义,给严格的 TSV 读取程序用就替换为空格。文件在你的浏览器中转换,不会上传。
如何把 CSV 转换为 TSV
- 打开
.csv、.tsv或.txt文件,拖到工具上,或粘贴数据。分隔符会自动识别;如有需要,可在 导入设置 中设置分隔符,或选择 Windows-1252、GB18030 等旧编码。 - 在 值中的制表符和换行 下,选择读取这份 TSV 的程序所期望的写法。然后设置 换行符 和 包含表头行。
- 选择 输出编码,然后点击 下载 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,像公式的值也不再带引号。
id,product,note
00731,"Desk lamp, brass","Ships in 2 boxes
fragile"
00732,Cable tidy,"=HYPERLINK(""x"")"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 文件。制表符分隔符会被自动识别,你可以选择输出为逗号或分号分隔。反斜杠转义会按普通字符读取,不会被解码。