手写 Markdown 表格是一件痛苦的事:数管道符、补横杠、对齐列宽……每次都要花大量时间在格式上,而不是内容本身。Markdown 表格生成器可以把这部分工作交给工具,你只需关注数据。
GFM 表格语法速览
GFM(GitHub Flavored Markdown)表格是目前最通用的 Markdown 表格格式,GitHub、GitLab、VS Code 预览、Obsidian 等工具均支持。
基本结构:
| 姓名 | 角色 | 状态 |
|--------|--------|------|
| 张三 | 工程师 | 在职 |
| 李四 | 设计师 | 在职 |
| 王五 | 管理员 | 休假 |
三个组成部分:
- 表头行:列名,用管道符
|分隔 - 分隔行:横杠加可选的冒号(控制对齐)
- 数据行:每行一条记录
首尾的管道符可以省略,但保留更易读。
列对齐控制
分隔行里的冒号位置决定对齐方式:
| 语法 | 对齐 |
|---|---|
--- | 不指定(浏览器默认,通常靠左) |
:--- | 左对齐 |
:---: | 居中 |
---: | 右对齐 |
混合对齐示例:
| 商品 | 数量 | 单价 |
|:-----------|:----:|--------:|
| 螺丝刀 | 10 | ¥9.90 |
| 万用表 | 3 | ¥128.00 |
| 电烙铁 | 5 | ¥45.00 |
商品列左对齐,数量居中,单价右对齐——数字列用右对齐更专业。
使用方式
下面介绍可视化编辑、CSV 和 JSON 三种常用方式;「导入数据」还能读取 HTML 表格和已有的 Markdown 表格。
可视化编辑器
直接在表格单元格里打字(Shift+Enter 在单元格内换行,输出写成 <br>),工具栏作用于当前单元格:
- 插入 / 删除行:在上方或下方插入,删除当前行
- 插入 / 删除列、左右移动列
- 排序、行列互换、撤销
- 列对齐:每列表头上方的下拉框,可选默认、左、居中、右
下方的 Markdown 输出实时更新,点击「复制 Markdown」即可使用。
适合场景:结构清晰、数据量小,想从零开始创建表格。
CSV 粘贴
在「导入数据」里粘贴 CSV——来自 Excel/Google Sheets 导出、数据库查询结果或 tsv 文件都行。工具统计前 20 行里引号之外的制表符、逗号、分号和竖线,选各行个数最一致的那个作分隔符,也可以手动指定格式;解析后同步填充可视化编辑器和 Markdown 输出。从电子表格复制的单元格也可以直接粘贴进网格。
示例,粘贴:
语言,范式,发布年份
Python,多范式,1991
Go,并发优先,2009
Rust,系统编程,2015
TypeScript,类型系统,2012
生成的 Markdown 表格:
| 语言 | 范式 | 发布年份 |
| ---------- | -------- | -------- |
| Python | 多范式 | 1991 |
| Go | 并发优先 | 2009 |
| Rust | 系统编程 | 2015 |
| TypeScript | 类型系统 | 2012 |
默认按显示宽度补空格(汉字计 2 列),选「紧凑」则只在竖线两侧各留一个空格。
适合场景:把表格数据转换为文档,或者把导出的 CSV 快速整理进 README。
JSON 粘贴
粘贴 JSON 对象数组,所有对象的键按首次出现的顺序成为表头,每个对象一行;缺少的键和 null 为空单元格,嵌套的对象或数组写成 JSON 文本(如 {"a":1})。二维数组(第一行作表头)和单个对象也可以。接口返回的数据、配置对象列表都可以直接粘贴进来。
示例,粘贴:
[
{ "接口": "/users", "方法": "GET", "鉴权": true },
{ "接口": "/login", "方法": "POST", "鉴权": false },
{ "接口": "/profile", "方法": "PUT", "鉴权": true }
]
生成:
| 接口 | 方法 | 鉴权 |
| -------- | ---- | ----- |
| /users | GET | true |
| /login | POST | false |
| /profile | PUT | true |
适合场景:API 文档、接口列表、配置项说明。
管道符的转义
GFM 表格用 | 分隔列,所以单元格内容里出现的 | 必须转义为 \|,否则会被解析为列分隔符。工具会自动处理这个问题。
如果需要手写,记得转义:
| 表达式 | 含义 |
|----------|------------------|
| `a \| b` | 逻辑或 |
| `a && b` | 逻辑与 |
| `a ?? b` | 空值合并运算符 |
常见使用场景
README 依赖表——列出项目依赖、版本号和许可证:
| 包名 | 版本 | 许可证 |
|-------------|--------|---------|
| react | 18.3.0 | MIT |
| typescript | 5.4.5 | Apache |
| eslint | 9.0.0 | MIT |
接口文档——接口路径、请求方法、参数说明。
更新日志——版本、日期、变更内容并排展示。
技术选型对比——方案 A vs 方案 B 的功能矩阵。
从代码数据生成表格
如果数据已经存在于 Python 字典列表、Go 结构体数组或 JS 对象数组中,可以先序列化成 JSON,再粘贴到「导入数据」。
Python 示例:
import json
tools = [
{"工具": "Prettier", "语言": "JS/TS", "配置文件": ".prettierrc"},
{"工具": "Black", "语言": "Python", "配置文件": "pyproject.toml"},
{"工具": "gofmt", "语言": "Go", "配置文件": "内置"},
]
print(json.dumps(tools, ensure_ascii=False, indent=2))
# 把输出粘贴到「导入数据」即可
GFM 表格的局限
了解边界条件,避免踩坑:
- 不支持合并单元格:每个格独立。需要合并时,改用 HTML
<table>元素。 - 不支持多行单元格:每格内容必须在一行内。GitHub 会把单元格里的
<br>渲染为换行,工具把单元格内的换行自动写成<br>。 - 仅支持行内 Markdown:格内可以用
**加粗**、`代码`、[链接](url),但不能放代码块或列表等块级元素。 - 需要预览才能确认效果:原始 Markdown 表格在纯文本编辑器里很难看,用预览验证渲染结果。
GFM 表格语法速查
| 元素 | 语法 |
|---|---|
| 表头分隔 | --- |
| 左对齐 | :--- |
| 居中 | :---: |
| 右对齐 | ---: |
| 转义管道符 | | |
| 加粗文字 | **文字** |
| 行内代码 | `代码` |
| 链接 | [标签](url) |
别再手数管道符了。立即使用 Markdown 表格生成器 →