Markdown 表格:完整参考

关于 GFM(GitHub 风格)竖线表格的一切 — 结构、对齐、转义、让渲染失效的错误,以及在不同工具之间搬运表格。

基本语法

| Column A | Column B |
|----------|----------|
| cell 1   | cell 2   |
| cell 3   | cell 4   |

三个部分:表头行、分隔行(至少是短横线),然后是数据行。分隔行必须存在 — 没有它,这段文本就只是段落而非表格。源码中的空格不必对齐;重要的是竖线,而不是列宽。行首行尾的竖线可选,但为了可移植性建议保留。

对齐

分隔行中的冒号决定列对齐 — :--- 左对齐(默认)、:---: 居中、---: 右对齐:

| Left | Center | Right |
|:-----|:------:|------:|
| a    | b      | c     |

对齐是 GFM 提供的唯一单元格级控制:没有单元格背景色、没有合并单元格、没有跨列。

单元格内的行内格式

单元格接受行内 Markdown — 加粗、斜体、行内代码 和 链接 — 但不接受块级元素:单元格内不能放列表、标题或嵌套表格。每行占源码一行;单元格内换行需要显式的 <br>。

让表格失效的常见错误

  1. 表格前没有空行 — 紧贴段落时,大多数解析器会把竖线当作文本。
  2. 分隔行格式有误 — 它只能包含短横线、冒号和竖线,且单元格数量必须与表头行完全一致。
  3. 单元格内有未转义的竖线 — 字面量 | 会切开单元格,使其后的每一列右移。请转义为 \|。
  4. 各行长短不一 — GitHub 容忍缺失的尾部单元格(渲染为空),但一些解析器和转换器会报错或补齐,所以请保持各行单元格数一致。
  5. 缩进的表格 — 行首四个空格会把整块变成代码围栏。

把可疑的表格粘贴进表格生成器 — 它会把对齐与转义重新规范化为标准形式。

在其他工具之间搬运表格

方向工具说明
Excel / Sheets → MarkdownExcel 转 Markdown仅读取缓存值;前导零按文本保留
CSV / TSV → MarkdownCSV 转 Markdown完整支持 RFC-4180:带引号的字段、内嵌逗号、多行单元格
Markdown → Excel / CSVMarkdown 表格转 Excel检测到每个表格;值一律写作文本,绝不强制转换类型
Markdown → JSONMarkdown 转 JSON表头行变成键;类型推断可一键关闭
从头创建或重排表格生成器粘贴单元格或现有表格;对齐与转义自动规范化

这五个工具都在你的浏览器中运行、零上传 — 格式支持矩阵记录了每个导出器如何处理表格对齐、多行单元格和转义。

GitHub、Reddit 和 Slack 中的表格

常见问题

如何在 Markdown 表格单元格内换行?

使用 HTML 的 <br> 标签 — Markdown 的两空格换行规则在表格行内不起作用,因为整行是同一个长行。包括 GitHub 在内的大多数渲染器都接受表格单元格内的 <br>。

Markdown 支持合并单元格吗?

不支持。GFM 表格没有 colspan 或 rowspan。要表达合并的数据,可以在每行重复该值,或重构表格;一些预处理器能从带跨度结构的源数据生成重复单元格。

为什么我的 Markdown 表格不渲染?

三个常见原因:表格与上一段之间没有空行、对齐行格式有误(它必须独占一行,只含竖线、短横线和冒号),或单元格内未转义的竖线过早切断了行。

一个 Markdown 表格可以有多少列?

格式本身没有限制 — 限制来自可读性。超过大约七列,源码形式的行就很难扫读,渲染后也常常超出页面宽度;考虑转置表格或把它拆开。

Markdown 表格在 Word 和 Excel 中显示正常吗?

直接粘贴不行 — Word 和 Excel 都没有 Markdown 解析器。先转换:理解结构的转换器能把 GFM 表格变成可编辑的 Word 表格或真正的 .xlsx 工作表,并保留表头行、对齐和前导零。

更多指南