DevToy

Markdown 表格

将 CSV 转成 Markdown 表格,且不破坏带引号的数据

一套可落地的 CSV 转 Markdown 流程,处理带引号的逗号、转义引号、对齐方式,以及在目标平台上的验证。

发布于 2026年7月11日 · 更新于 2026年7月11日

CSV 看起来简单,直到某个值里出现了分隔符。把每一行直接按逗号切开,在 Alice,Active,10 这种数据上能工作,但一旦单元格里出现 "Keyboard, compact""1,999.00" 就会失效。可靠的转换必须先解析 CSV 记录,再生成 Markdown。

先保证 CSV 本身有效

CSV 解析器会把引号字段中的分隔符视为文本。引号字段中的双引号通常用两个双引号表示。例如:

Product,Description,Price
Keyboard,"Compact, wireless","$89.00"
Monitor,"27"" IPS display","$299.00"

第二行只有三个单元格,不是五个。转换大文件之前,先确认分隔符和字符编码。电子表格导出的内容可能是逗号、制表符或分号,具体取决于地区设置。如果单元格里经常包含逗号,而且导出格式你可以控制,优先使用 TSV。

将解析后的网格转成 Markdown

Markdown 表格需要表头和分隔行。上面的记录会变成:

| Product | Description | Price |
| :--- | :--- | ---: |
| Keyboard | Compact, wireless | $89.00 |
| Monitor | 27" IPS display | $299.00 |

说明文字和标识符一般左对齐,紧凑的状态值可以居中,数字类字段通常右对齐,方便读者横向比较。对齐只是展示元数据,不会把字符串变成数值。

转义 Markdown 专用字符

CSV 的引号规则和 Markdown 的转义规则解决的是不同问题。解析后的单元格里如果有字面量 |,在生成 Markdown 之前必须转成 \|,否则它会被当成下一列的边界。大多数 Markdown 表格渲染器也不支持单元格里真正的换行。可以把换行替换成空格,或者在目标平台允许内联 HTML 时使用 <br>

不要机械地删除所有引号。解析器只应该移除用于包裹字段的引号,并把双引号还原为字面量引号。未加引号的值里本来就存在的引号应该保留。

在目标平台验证

GitHub、GitLab、文档生成器和笔记工具并不完全实现同一种 Markdown 规则。把一小段样例粘到最终平台里,确认列数、竖线、HTML 和 Unicode 都正常,再去转换上千行数据。

对于敏感数据,可以直接使用 可视化 Markdown 表格生成器。解析和转换都在浏览器内完成,表格内容不需要上传到转换 API。

相关指南