Navicat导出CSV/TXT选制表符分隔符需在导出向导第二步「Format Settings」页的Field Separator下拉菜单中手动选择Tab;导入时须在「文本文件」格式下主动勾选Tab为分隔符并清空Text Qualifier,字段含换行符必须勾选Enclose fields in quotes。
导出时怎么选制表符分隔符
navicat 导出 csv/txt 时,tab 不是默认选项,必须手动指定。关键路径是:导出向导 → 第二步「format settings」页(默认展开)→ 找到 field separator 下拉菜单 → 选择 tab。
常见踩坑点:
- 误选「Excel」或「SQL」格式导出,整个
Field Separator区域会消失 - 看到「其他」输入框就手输
\t或—— 这无效,Navicat 不解析转义序列,只认下拉菜单里的Tab - 界面语言为中文时,把「字段分隔符」当成别的设置项跳过,其实它就在正中间显眼位置
导入 DAT/TXT 文件时如何识别 Tab 分隔
Navicat 导入向导里,Tab 是预设分隔符之一,但需主动勾选并确认上下文匹配。
典型配置组合:
- 源文件格式选「文本文件」(支持
.dat、.txt) - 在「分隔符」设置页,
Field Separator明确选Tab,Text Qualifier清空(即不填双引号) - 若 DAT 文件无字段名行,务必取消勾选
First row contains field names - 字段含换行符?必须勾选
Enclose fields in quotes,否则错行——这不是可选项,是 Tab 分隔下的安全前提
导出后双击仍是单列?不是导出失败,是 Excel 自动忽略你的 Tab
Navicat 按你设的 Tab 正确生成了文件,但 Windows 双击打开时,Excel 默认用系统区域设置(中文 Windows 是逗号)解析,根本没读文件里的真实分隔符。
正确打开方式只有两种:
- 启动 Excel →「数据」→「从文本/CSV」→ 手动选该文件 → 在导入向导中,编码选
UTF-8,分隔符手动选Tab(别信「自动检测」) - 用
Notepad++或vim -b查看原始字节,确认字段间确实是0x09(即\t),而非空格或全角字符
用 Shell 脚本补位处理 Tab 分隔数据
当 Navicat 导出功能受限(比如 Excel 格式导出字段不全),直接复制为 Tab 分隔值再用脚本加工更可靠。
实操要点:
- 在 Navicat 查询结果右键 →「复制为」→「制表符分隔值(字段名和数据)」
- 粘贴到
data.tsv,用awk或csvkit转换:in2csv -f tsv data.tsv > data.csv - 若下游是 Python,
pandas.read_csv('data.tsv', sep='\t', quoting=csv.QUOTE_MINIMAL)行为与 Navicat 勾选Enclose fields in quotes时一致
最易被忽略的是:哪怕用了 Tab,只要字段含换行符且未勾选 Enclose fields in quotes,导入或解析必然错行——这个勾选项不是锦上添花,是 Tab 场景下的刚性要求。


















