Markdown 表格:完整参考
关于 GFM(GitHub 风格)竖线表格的一切 — 结构、对齐、转义、让渲染失效的错误,以及在不同工具之间搬运表格。
基本语法
| Column A | Column B |
|----------|----------|
| cell 1 | cell 2 |
| cell 3 | cell 4 |三个部分:表头行、分隔行(至少是短横线),然后是数据行。分隔行必须存在 — 没有它,这段文本就只是段落而非表格。源码中的空格不必对齐;重要的是竖线,而不是列宽。行首行尾的竖线可选,但为了可移植性建议保留。
对齐
分隔行中的冒号决定列对齐 — :--- 左对齐(默认)、:---: 居中、---: 右对齐:
| Left | Center | Right |
|:-----|:------:|------:|
| a | b | c |对齐是 GFM 提供的唯一单元格级控制:没有单元格背景色、没有合并单元格、没有跨列。
单元格内的行内格式
单元格接受行内 Markdown — 加粗、斜体、行内代码 和 链接 — 但不接受块级元素:单元格内不能放列表、标题或嵌套表格。每行占源码一行;单元格内换行需要显式的 <br>。
让表格失效的常见错误
- 表格前没有空行 — 紧贴段落时,大多数解析器会把竖线当作文本。
- 分隔行格式有误 — 它只能包含短横线、冒号和竖线,且单元格数量必须与表头行完全一致。
- 单元格内有未转义的竖线 — 字面量
|会切开单元格,使其后的每一列右移。请转义为\|。 - 各行长短不一 — GitHub 容忍缺失的尾部单元格(渲染为空),但一些解析器和转换器会报错或补齐,所以请保持各行单元格数一致。
- 缩进的表格 — 行首四个空格会把整块变成代码围栏。
把可疑的表格粘贴进表格生成器 — 它会把对齐与转义重新规范化为标准形式。
在其他工具之间搬运表格
| 方向 | 工具 | 说明 |
|---|---|---|
| Excel / Sheets → Markdown | Excel 转 Markdown | 仅读取缓存值;前导零按文本保留 |
| CSV / TSV → Markdown | CSV 转 Markdown | 完整支持 RFC-4180:带引号的字段、内嵌逗号、多行单元格 |
| Markdown → Excel / CSV | Markdown 表格转 Excel | 检测到每个表格;值一律写作文本,绝不强制转换类型 |
| Markdown → JSON | Markdown 转 JSON | 表头行变成键;类型推断可一键关闭 |
| 从头创建或重排 | 表格生成器 | 粘贴单元格或现有表格;对齐与转义自动规范化 |
这五个工具都在你的浏览器中运行、零上传 — 格式支持矩阵记录了每个导出器如何处理表格对齐、多行单元格和转义。
GitHub、Reddit 和 Slack 中的表格
- GitHub 渲染完整的 GFM,包括对齐和行内格式;在表格与前后文本之间保留一个空行。
- Reddit 在大多数场景支持竖线表格(含对齐),但引用内不支持。
- Slack 和 Discord 不渲染表格 — 竖线会原样显示。在聊天中,可以用 Markdown → 图片工具把表格渲染成可分享的图片。
常见问题
如何在 Markdown 表格单元格内换行?
使用 HTML 的 <br> 标签 — Markdown 的两空格换行规则在表格行内不起作用,因为整行是同一个长行。包括 GitHub 在内的大多数渲染器都接受表格单元格内的 <br>。
Markdown 支持合并单元格吗?
不支持。GFM 表格没有 colspan 或 rowspan。要表达合并的数据,可以在每行重复该值,或重构表格;一些预处理器能从带跨度结构的源数据生成重复单元格。
为什么我的 Markdown 表格不渲染?
三个常见原因:表格与上一段之间没有空行、对齐行格式有误(它必须独占一行,只含竖线、短横线和冒号),或单元格内未转义的竖线过早切断了行。
一个 Markdown 表格可以有多少列?
格式本身没有限制 — 限制来自可读性。超过大约七列,源码形式的行就很难扫读,渲染后也常常超出页面宽度;考虑转置表格或把它拆开。
Markdown 表格在 Word 和 Excel 中显示正常吗?
直接粘贴不行 — Word 和 Excel 都没有 Markdown 解析器。先转换:理解结构的转换器能把 GFM 表格变成可编辑的 Word 表格或真正的 .xlsx 工作表,并保留表头行、对齐和前导零。