数据

CSV 工具

粘贴 CSV 导出、TSV 数据、从 Excel / Google Sheets 复制来的表格,或任意分隔符文本,也可以直接打开本地文件。DevKitLab 会自动识别分隔符,并渲染成可编辑的表格预览。你可以在同一个流程里完成常见清理:裁剪单元格空白、删除空行和空列、合并连续空格、去除重复行、按关键词或正则筛选行、按列排序、重命名表头、删掉个别不需要的行、只保留需要的列。最后可导出为 CSV、TSV、JSON,或直接粘贴到文档里的 Markdown 表格。读取、解析、编辑和导出全部在浏览器标签页内完成,数据不会离开你的设备。

CSV
输出
CSV 命令

功能简介

平时你可能要分别打开解析器、表格查看器和格式转换器。这个工具把它们合在一个本地流程里,专门处理那些从邮件、后台、报表系统里导出来的不太干净的 CSV。

  1. 01

    自动识别分隔符和引用字符

    通过列数一致性判断逗号、分号、制表符或竖线分隔符;如果数据来源混乱,也可以手动覆盖。对于引用规则不一致的导出,还可以在双引号和单引号之间切换。

  2. 02

    可编辑的表格预览

    解析后的行会显示为可点击表格。修改任意表头或单元格后,变化会直接进入最终输出。固定首列、固定表头、实时行数 / 列数 / 空单元格统计,加上每行右侧的删除按钮,可以让你边看边清理。

  3. 03

    一套连续的清理流程

    裁剪空白、删除空行、删除空列、合并多余空格、去除重复行,每个步骤都是独立开关。你可以按原始数据的脏乱程度自由组合。

  4. 04

    理解表头的列操作

    可以切换第一行是否作为表头。开启时,列操作会显示真实列名;关闭时,列会按 1、2、3… 编号。直接在预览里重命名表头后,所有导出格式都会使用新名称。

  5. 05

    数字友好的排序和行筛选

    可按任意列升序或降序排序:数字列按数字比较,因此 2 会排在 10 前面;文本列使用更自然的本地化比较;空单元格始终排在最后。行筛选支持关键词和正则,可以只针对某一列,也可以反过来排除匹配的行。

  6. 06

    只保留需要的列

    通过 checkbox pill 隐藏无关列。保留下来的列会同时影响预览和所有导出格式,适合把 50 列 CRM 导出整理成真正需要的 6 列。

  7. 07

    多格式导出

    可在 CSV、TSV、JSON(用表头作为 key 的对象数组)和 GitHub Flavored Markdown 表格之间切换。结果既可以复制到剪贴板,也可以下载为带有合理默认文件名的文件。

  8. 08

    完全本地,零上传处理

    读取文件、解析、清理、编辑和导出都在当前浏览器标签页内运行。客户名单、财务导出、内部通讯录和 PII 不会离开设备。

如何使用

流程很短:粘贴,确认解析,清理,调整形状,导出。每一步都会实时重新计算,因此输出会始终和预览保持同步。

  1. 01

    把 CSV、TSV,或从表格软件复制出来的文本粘贴到左侧输入区,也可以用打开文件读取本地文件,或者直接把文件拖进来。

  2. 02

    在解析设置里确认自动识别出的分隔符和引用字符;如果识别不对,切换到手动指定。

  3. 03

    根据数据情况决定是否启用第一行作为表头,这样列操作会显示真实列名,而不是 1, 2, 3…。

  4. 04

    按需要组合清理设置:裁剪单元格空白、删除空行、删除空列、合并连续空格、去除重复行。

  5. 05

    用关键词或正则筛选行,选择排序列和方向,缩小保留列范围;需要修改列名或删掉某一行时,直接在预览里操作。

  6. 06

    选择输出格式(CSV / TSV / JSON / Markdown),然后复制结果或下载文件。

功能说明

实际任务往往不是转换 CSV,而是这份导出太乱了,先整理好再发给别人。这个页面就是围绕这件事从头到尾设计的。

  • 你可以一边看表格,一边清理数据。很多在线 CSV 工具只能预览或只能转换;这里的预览会随着每个选项实时变化。
  • 第一行作为表头是核心开关。无表头的数据库导出、无表头 SQL dump、带表头的 JSON 扁平表,都可以用同一个开关处理。
  • 数字友好的排序会让 2, 10, 100 按这个顺序排列,而不是出现 10, 100, 2 这种文本排序结果。
  • 清理步骤可以组合使用。你可以一次完成裁剪空白 → 删除空行 → 去重,不用在脚本和 Excel 之间来回切换。
  • 导出格式按下游用途选择:CSV 给表格软件,TSV 适合复制到 Google Sheets,JSON 给代码使用,Markdown 适合文档和工单。
  • 不上传数据,因此客户数据、工资表、工单导出等不该离开电脑的内容也能放心处理。
  • 预览里的内联编辑可以直接修正一个拼错的表头或一个异常值,不需要为了一个小错误重新粘贴整份 CSV;某一行整体不要了,点行号旁边的删除按钮即可。
  • 筛选行、保留列和内联编辑可以叠加使用,四万行的导出也能很快缩到真正要发出去的那十几行。

适合哪些场景

这些是最常见的 CSV 清理场景。流程始终一样:粘贴、清理、导出,只是面对的数据来源不同。

  1. CRM 线索导入前处理

    去除重复行、删除空记录、筛掉内部测试账号、去掉 CRM 读不到的列,然后导出精简后的 CSV,用于 HubSpot / Salesforce / Pipedrive 导入。

  2. 电商商品表清理

    删除空 SKU 列,裁剪商品名两侧空白,按分类排序,并把表头改成上传模板要求的形式,例如 product_id → id,方便导入 Shopify、WooCommerce 或 BigCommerce。

  3. 营销活动报表

    筛选到单一渠道,只保留花费、展示、转化等关键列,然后导出 CSV 给 Sheets,或导出 Markdown 放进周报。

  4. API 调试和契约检查

    把 CSV 示例转换成 JSON,清楚看到每一行进入接口时会是什么对象,也能区分某些字段是空字符串,还是根本不存在。

  5. 广告效果数据标准化

    把 Google Ads、Meta、TikTok 等来源中列名和顺序不同的导出,整理成同一个 schema,再交给 BigQuery 或 Looker。

  6. 用表格做批量内容编辑

    按内容标签筛选行,只保留 title / slug / status 等列,然后导出 Markdown,贴进 Notion 或 Linear 工单供团队审查。

  7. 财务对账前处理

    整理金额列,删除空的合计行,按日期排序,并导出成 QuickBooks、Xero 或 CSV 导入器期望的格式。

  8. 客服工单导出清理

    把 Zendesk、Intercom、HelpScout 等平台的导出整理到统一 schema:只保留共同列,并把表头重命名为一致格式。

  9. A/B 测试结果转成 Markdown 报告

    筛选出获胜版本,按 lift 排序,然后直接导出 Markdown,用于 PR 描述或 postmortem。

  10. 数据工程 schema 映射

    把预览区当成手动映射界面:将源列名改成目标 schema,删除其余列,再导出 JSON 给 loader 脚本使用。

延伸阅读

如果 CSV 清理是更大格式转换流程中的一步,可以搭配 JSON 转换器 在 JSON 和 CSV 之间往返。导出的 JSON 如果还需要最后检查结构,可以打开 JSON 格式化 检查结构、查看嵌套,并复制可读版或压缩版。如果粘贴来的表格外侧带有空行、混乱换行或 BOM 字符,可以先用 文本清理 清理;如果原始数据是一行一个值的名单、URL 或日志片段,并且需要先去重、排序或编号,可以先用 行操作工具 把这一列整理好。如果 CSV 来自数据库查询导出,并且还要回看或提交源查询,可以配合 SQL 格式化 整理 SELECT、JOIN 和筛选条件。

CSV 从来没有过一个真正的标准

CSV 比几乎所有描述它的规范都要老。RFC 4180 发布于 2005 年,而且只是一份「信息性」文档,不是标准——它记录的是一种常见做法,不是必须遵守的规则。于是每个导出 CSV 的程序都在按自己的理解写文件。下面这五条差异,是同一份数据在两个工具之间对不上的最常见原因。

  1. 分隔符取决于导出它的那台电脑

    在用逗号当小数点的地区——德国、法国、西班牙、巴西——Excel 导出的「CSV」是用分号分隔的,因为逗号已经被小数点占走了。所以 id;name;city 是一份完全正常的 CSV。这也正是这个页面需要自动识别分隔符的原因:扩展名是 .csv,并不代表里面用的是逗号。

  2. 一条记录可以跨很多行

    引号里面的换行是合法的:备注字段里放一整段带换行的地址或说明,完全符合规范。所以 CSV 的行数不等于记录数,按换行符切分一份 CSV 是最常见的错误写法之一。把一个带换行的引号字段粘到上面试试,它会被正确读成一个字段。

  3. 转义引号靠双写,不是反斜杠

    要在字段里放一个引号,规范的写法是把它写两遍:"he said ""hi"""。反斜杠在 CSV 里根本不是转义字符——而 MySQL 的 SELECT ... INTO OUTFILE 默认就用反斜杠转义,导出的文件在严格的 CSV 解析器里会直接散架。实测:plain\,text,3 会被读成三个字段,不是两个。

  4. CSV 里没有类型,是打开它的软件在猜

    文件里全都是文本,类型是打开它的程序猜出来的。Excel 会把 007 变成 7,把 19 位的订单号显示成科学计数法,把看起来像日期的编号改写成日期——人类基因命名委员会当年就是因为这个改掉了一批基因名。上面的工具不做这种猜测:007 还是 007,19 位 ID 一位不少。要把 CSV 发给一个大概率用 Excel 打开的人,先确认哪些列会被改写。

  5. 列数不齐时,最宽的那一行说了算

    真实导出里行长度经常对不齐。这里的处理是以最宽的行为准:短行补空单元格,多出来的列按位置补一个名字。表头 a,b,c 碰上一行 3,4,5,6,输出的表头就变成 a,b,c,4——第四列的名字就叫「4」。转换前先扫一眼列数,比事后在下游排查省事得多。

使用建议

CSV 越大、结构越怪,下面这些习惯越能让清理结果可重复、可预测。

  • 先确认第一行作为表头。其他所有列级操作都依赖这个判断:第一行到底是数据,还是列名。
  • 推荐顺序是:裁剪单元格空白 → 删除空行 → 删除空列 → 合并连续空格 → 去除重复行 → 筛选 → 排序 → 保留需要的列。
  • 对数字列排序前,快速扫一眼字段内容。数字友好排序可以处理 2 和 10,但 12、12k、12,500 混在一起时,仍可能按文本处理。必要时先标准化数值。
  • 导出 Markdown 前先缩减列数。12 列 Markdown 表格在原始文本里看着没问题,但在 Notion、Linear、GitHub 预览里很容易横向溢出。
  • 如果要同时分享给工程和非工程同事,可以导出同一份清理后数据的 CSV 和 JSON。JSON 保留 key 和结构,CSV 则能直接用 Excel 打开。
  • 从 Sheets 复制出来的内容混有制表符和换行时,可以把分隔符手动固定为制表符。自动识别通常能猜对,但手动锁定能避免编辑过程中出现意外。
  • 需要修改列名时,优先使用预览里的内联表头重命名。新名称会同时进入 CSV、TSV、JSON 和 Markdown 导出。

边界与注意事项

了解这个工具不做什么,才能更好地使用它,也能知道什么时候该换别的工具。

  • 自动识别分隔符是启发式判断。对主流工具导出的干净文件很有效,但样本太短、分隔符混杂或表头很乱时,可能需要手动指定。
  • 它负责清理和重塑表格,但不负责强制校验 schema。必填字段、合法枚举、跨行的业务规则,仍然需要交给下游校验器处理。
  • 数字排序会尽量把每个单元格按数字读取。像 12、12k、12,500 这种混合列会按文本排序;如果要严格数值排序,请先标准化。
  • 预览只渲染前 500 行,复制和下载仍然是完整数据。但几十 MB 的文本仍会让输入和编辑变卡,遇到这种规模建议先截取相关部分,或使用流式处理工具。
  • Markdown 导出是单个 GitHub Flavored Markdown 表格。不支持多表文档、自定义对齐或 HTML 单元格。
  • 行筛选支持纯文本和 JavaScript 正则,匹配时不区分大小写,但它不是查询语言。像「金额大于 100」这类比较,还是要交给表格软件或 SQL。
  • 它是查看和整理工具,不是 CSV diff 工具。要逐行比较两份导出,请使用专门的 diff 查看器。
  • 所有处理都在浏览器内完成。好处是隐私更好,缺点是没有服务端状态,也不会在不同设备之间同步。

常见问题

这里整理了解析、清理、导出、隐私,以及不同输出格式取舍时的常见问题。

我的 CSV 会上传到哪里吗?

不会。解析、清理、编辑、排序、筛选和导出都在当前浏览器标签页里完成。没有服务器往返,也不会对数据做分析统计,适合客户名单、财务导出和任何包含 PII 的数据。

支持 TSV 和竖线分隔文件吗?

支持。自动识别默认覆盖逗号、制表符、分号和竖线。也可以切换到手动指定:TSV 选择制表符,日志式导出选择竖线,欧洲地区 CSV 常见的分号也可以固定。

第一行作为表头到底会改变什么?

启用后,第 1 行会作为列名,下游操作(排序、重命名、保留列)会显示真实标签。关闭后,第 1 行会被当作普通数据,列会用编号表示。JSON 导出也会跟着变化:启用时使用表头作为 key,关闭时使用索引式 key。

可以只保留指定列吗?

可以。在保留列里关闭不需要的列,预览和所有导出格式都会立即移除它们。至少需要保留一列。

可以删除包含某个关键词的行吗?

可以。打开筛选行,输入关键词,再打开排除匹配的行,包含它的行就会全部去掉。需要按模式匹配时把模式切换成正则,也可以只针对某一列筛选;只是个别几行的话,直接点预览里行号旁边的删除按钮。

可以重命名列名吗?

可以。点击预览里的任意表头即可内联编辑。新名称会出现在 CSV、TSV、JSON 的 key,以及 Markdown 表头行中。

单个单元格可以编辑吗?

可以。点击任意单元格即可就地编辑。修改会在切换输出格式时保留,因此只需改一次,所有导出都会使用修正后的值。

可以导出为 JSON 吗?

可以。把输出格式切换到 JSON,结果会是 [{...}, {...}] 数组,每一行都会变成一个对象,key 来自当前表头。

可以导出为 Markdown 吗?

可以。Markdown 输出会生成 GitHub Flavored Markdown 表格,包含竖线转义和 --- 分隔行,可直接粘贴到 PR 描述、Notion、Linear 或文档站点。

排序能正确处理数字吗?

能。可以解析为数字的列会按数值排序,例如 2, 10, 100。其他列会退回到基于本地化规则的自然文本排序。混合内容列会按文本处理。

自动识别分隔符猜错了怎么办?

切换到解析设置 → 手动指定,选择准确的分隔符。自动识别会根据前约 20 行的列数一致性打分,因此样本很短或表头很乱时可能误判。

除了粘贴,可以直接打开 CSV 文件吗?

可以。打开文件是用浏览器的 File API 在本地读取,把文件拖到输入区效果相同,内容不会发送到任何地方,文件名还会成为下载时的默认名称。单个文件上限是 8 MB。

可以打开多大的 CSV?

几千行、几十列通常很流畅。几万行也可以处理:预览只画前 500 行,复制和下载仍是完整数据。再大的文件,建议先截取相关行再处理。

为什么有些带引号的字符串仍然显示转义字符?

请确认解析设置里的引用字符是否匹配。大多数 CSV 使用双引号,但一些旧 Excel 导出或欧洲地区设置可能使用单引号;引用字符不对时,解析器就无法正确还原转义值。

更多相关工具

CSV 很少一直是 CSV。它会变成 JSON,变成 JSON 之后要查结构,或者被拿来和上一份导出比对,看哪里变了。