写 README 文档、Wiki 页面或者技术博客的时候,经常需要插入表格数据。数据可能在 Excel 里整理好了,但 GitHub 和很多文档平台用的是 Markdown 格式的表格。手动一个个敲竖线和横杠既慢又容易错。这篇说说怎么把 Excel 里的表格快速转成 Markdown 格式。
什么是 Markdown 表格
Markdown 表格是 GFM(GitHub Flavored Markdown)扩展支持的语法,用纯文本字符画出表格的样子。长这样:
| 姓名 | 部门 | 职位 |
|--------|----------|------------|
| 张三 | 技术部 | 前端开发 |
| 李四 | 产品部 | 产品经理 |
| 王五 | 设计部 | UI 设计师 |
语法规则很简单:
- 每行用竖线
|分隔各列 - 第二行是分隔行,用横杠
---填充,冒号:控制对齐方式(左对齐:---、右对齐---:、居中:---:) - 第一行作为表头
GitHub、GitLab、Gitee、Notion、语雀等平台都能正常渲染这种格式。所以如果你在这些平台上写文档需要放表格,就得按这个格式来。
表格转 Markdown 典型场景有哪些
什么时候需要把数据转成 Markdown 表格?举几个实际的例子:
写项目 README:开源项目经常需要在 README 里放一些对比表格,比如框架特性对比、API 参数说明、配置项列表之类的。这些数据可能一开始是在 Excel 或者 Google Sheets 里整理的。
写技术文档:公司内部的 Wiki、Confluence、或者基于 GitBook 的文档站,都需要表格来展示数据。从业务系统导出的数据通常是 CSV 或者 Excel 格式,需要转一下才能用。
写博客文章:技术博客里经常需要放一些数据对比或者测试结果表格。数据来源可能是实验记录或者性能测试报告。
团队协作沟通:在 Slack、钉钉、飞书这些工具里发消息时想贴个表格,但这些平台不一定支持直接粘贴 Excel 单元格。转成 Markdown 文本至少能让人看懂表格的结构。
工具支持的输入方式
表格转 Markdown 工具通常支持几种输入方式,适应不同的使用习惯:
直接粘贴 Excel 单元格:在 Excel 里选中一片区域,Ctrl+C 复制,然后粘贴到工具的输入框里。Excel 把复制的单元格数据以 Tab 分隔的格式放到剪贴板里,工具能识别这种格式并正确解析每列的内容。这是最方便的方式,也是大多数人常用的。
Tab 分隔文本:如果你已经有了一段用 Tab 键分列的文本,直接粘贴进来也行。效果和从 Excel 复制是一样的。
CSV 格式:有些工具还支持直接粘贴 CSV 内容(逗号分隔)。如果你的数据本来就是 CSV 格式就不用再转一手了。
手动输入:数据量不大的时候直接在输入框里打字也可以,Tab 键切换到下一列,Enter 键换行。
自动对齐是怎么实现的
Markdown 表格虽然不要求严格对齐(渲染后的效果是一样的),但看着整整齐齐的表格源码确实舒服不少。工具输出的结果通常会把每列对齐好,这背后有个简单的计算过程:
- 扫描每一列的所有单元格,找出这一列里内容最长的那个单元格的宽度
- 用这个最大宽度作为该列的对齐基准
- 每个不足宽度的单元格在右边补空格,直到达到列宽
- 分隔行的横杠数量也按对应的列宽生成
举个例子,假设第一列的数据分别是"姓名"、"张三"、"李四王五",最长的是"李四王五"占 4 个中文字符(或者算字节长度),那第一列的宽度就定为 4 个字符,"姓名"和"张三"后面都会补空格对齐。
需要注意的是,中文字符和英文字符的宽度计算不太一样。大多数工具会按显示宽度来算(中文算 2 个单位或按实际渲染宽度),这样对出来的表格才不会歪。
输出格式说明
工具生成的 Markdown 表格遵循标准 GFM 语法,兼容性方面没什么问题。几个细节:
- 表头:输入的第一行自动当作表头处理,生成分隔行
- 对齐方式:默认左对齐,部分工具允许选择对齐方式
- 空单元格:空内容会保留为空的单元格(两个竖线之间没有内容),不会省略
- 特殊字符:单元格内含有竖线
|或者反引号等特殊字符时,工具会做转义处理 - 长文本:特别长的单元格内容不会被截断,完整的保留下来(这可能导致某些列很宽)
生成之后建议检查一下有没有特殊情况没处理好。特别是单元格里包含管道符或者换行的数据,偶尔会出现解析偏差。
Markdown 表格能转回 Excel 吗
表格数据在各种格式之间来回转是很常见的需求。除了 Excel 到 Markdown,还有这些方向:
CSV 转 Markdown:CSV 本身就是纯文本表格的一种表示,转换逻辑和 Excel 类似,只是分隔符从 Tab 变成了逗号。
Markdown 转 CSV / Excel:反向操作也有需求。别人给你的文档里的表格你想导入 Excel 分析,就需要反过来解析 Markdown 表格。
HTML 表格转 Markdown:从网页上复制了一个 HTML 表格,想去掉标签变成 Markdown 格式。这比纯 Excel 场景多了一层 HTML 解析。
JSON 转 Markdown:有些接口返回的数据是 JSON 数组,里面每个对象代表一行,想把它们可视化成表格形式。这种场景在写接口文档的时候会遇到。
表格转 Markdown 有什么技巧
几个能让效率更高的小建议:
- Excel 复制之前先把不需要的列隐藏起来(选中列然后右键隐藏),这样复制过来的数据就是干净的,不用到了转换工具里再删。
- 如果表格特别宽(列数多),转成 Markdown 之后在手机上看可能会横向溢出。考虑一下是不是真的需要这么多列,或者拆成多个小表格。
- Markdown 表格不支持合并单元格(rowspan/colspan)。如果有合并单元格的需求,要么接受渲染出来没有合并效果,要么换个格式(比如 HTML 表格)。
- 生成之后直接粘贴到 GitHub 的编辑器里预览一下效果,确认没问题再提交。
常见问题
Markdown 表格支持合并单元格吗?
不支持。标准 Markdown 语法没有合并单元格的功能。如果需要这个效果,只能直接写 HTML 的 table 标签。大部分 Markdown 渲染器支持内联 HTML,但有些平台(如 GitHub)会过滤复杂 HTML。
单元格里有逗号或竖线怎么办?
竖线是 Markdown 表格的分隔符,如果内容里有竖线需要用反斜杠转义:\|。逗号在 Markdown 表格里没有特殊含义,可以直接写。如果内容里有换行,需要用 <br> 标签替代。
从 Excel 复制粘贴能直接转换吗?
可以。直接从 Excel 选中单元格复制,粘贴到工具的输入框中,工具会自动识别制表符分隔的数据并转换。但注意复制时不要包含合并单元格,否则格式会错乱。
总结
把 Excel 数据转成 Markdown 表格这件事本身不复杂,核心就是解析输入的分隔格式然后按 GFM 语法重新组织输出。关键在于处理好中文宽度、特殊字符转义这些细节。有了在线工具之后整个过程也就是复制粘贴点一下的事,比手写快多了,出错概率也低。日常写文档用到表格的时候可以试试。