MDUtil

Markdown 表格

用 | 分隔列,在表头下面写一行短横线。本文介绍对齐方式、单元格里的格式、转义竖线、单元格内换行,以及 Markdown 表格不够用时的办法。

简短回答

Markdown 怎么画表格?

先用竖线写表头单元格,下一行写短横线,之后每行一条数据:| 姓名 | 职位 |、| --- | --- |、| 张三 | 设计 |。短横线行里的冒号决定对齐方式。表格来自 GitHub 风格 Markdown,GitHub 和大多数编辑器都支持。

Markdown
| 姓名 | 职位 | 入职年份 |
| --- | --- | --- |
| 张三 | 设计 | 2021 |
| 李四 | 工程 | 2019 |

显示效果

姓名职位入职年份
张三设计2021
李四工程2019

表格的写法和示例

源码里的列不需要对齐,渲染器会根据竖线生成表格。

列对齐

短横线左边加冒号是左对齐,两边都加是居中,右边加是右对齐,适合数字。

Markdown
| 商品 | 数量 | 价格 |
| :--- | :---: | ---: |
| 苹果 | 3 | 12.00 |
| 梨 | 12 | 48.50 |

显示效果

商品数量价格
苹果312.00
梨1248.50

单元格里的格式

单元格里可以有加粗、行内代码、链接、图片和删除线,但不能放列表或代码块。

Markdown
| 参数 | 默认值 | 说明 |
| --- | --- | --- |
| `--force` | **关闭** | 跳过[检查](https://example.com/checks) |
| `--quiet` | 开启 | ~~详细~~ 静默输出 |

显示效果

参数默认值说明
--force关闭跳过检查
--quiet开启详细 静默输出

单元格里的竖线和换行

单元格里的竖线要写成 \|,代码里也一样。用 <br> 在单元格里换行。

Markdown
| 运算符 | 含义 |
| --- | --- |
| `a \| b` | a 或 b |
| `&&` | 两边都为真,<br>从左到右计算 |

显示效果

运算符含义
a | ba 或 b
&&两边都为真,
从左到右计算

最简写法

两边的竖线和对齐用的空格都可以省略,把列对齐只是为了源码好读。

Markdown
姓名 | 职位
--- | ---
张三 | 设计
李四 | 工程

显示效果

姓名职位
张三设计
李四工程

空表头

表格总要有表头行,不需要表头时把表头单元格留空。

Markdown
| | |
| --- | --- |
| 周一 | 健身 |
| 周二 | 钢琴 |

显示效果

周一健身
周二钢琴

用 HTML 合并单元格

Markdown 表格不能合并单元格。允许 HTML 的地方可以写带 colspan 或 rowspan 的 HTML 表格。

Markdown
<table>
  <tr><th colspan="2">营业时间</th></tr>
  <tr><td>周一至周五</td><td>9:00–18:00</td></tr>
  <tr><td>周六</td><td>10:00–14:00</td></tr>
</table>

显示效果

营业时间
周一至周五9:00–18:00
周六10:00–14:00

各平台的表格支持

遵循 GitHub 风格 Markdown 的应用都能显示表格,聊天软件不能。

应用支持情况说明
GitHub / GitLab支持支持表格和对齐,过宽的表格可以横向滚动。
Obsidian支持阅读视图和实时预览里都能显示表格。
VS Code / Typora支持预览中显示表格,Typora 可以像表格软件一样编辑。
Discord / Slack不支持表格显示为普通文字,放进代码块可以保持列对齐。

常见问题

表格的列怎么对齐?

在表头下面的短横线行里加冒号::--- 左对齐,:---: 居中,---: 右对齐。

Markdown 表格能合并单元格吗?

不能。允许 HTML 的地方可以写带 colspan 或 rowspan 的 HTML 表格。

单元格里怎么换行?

在要换行的位置写 <br>。直接换行会结束这一行表格。

单元格里怎么写竖线?

用反斜杠转义:\|。行内代码里也要这样写。

为什么表格没有显示出来?

检查表头下面是否有短横线行、短横线行的单元格数是否和表头一致、每一行是否都写在同一行里,以及表格前面是否缩进了四个空格(那样会变成代码)。在列表里时,表格要缩进到和列表项文字对齐。

单元格里能放列表或代码块吗?

Markdown 做不到,单元格里只能有一行文字。可以用 <br> 分隔各项,或者在允许 HTML 的地方改用 HTML 表格。

怎样快速做一个表格?

用 Markdown 表格生成器 像编辑表格一样填写单元格,或者用 CSV 转 Markdown 表格 转换电子表格。

Discord 和 Slack 支持表格吗?

不支持。把表格放进代码块可以保持列对齐。