Markdown 表格生成器
在网格里编辑 Markdown 表格,或从 Excel、WPS、CSV、JSON、HTML 粘贴生成。自动转义竖线和换行,中文列宽按 2 列计算,对得整齐。
- 在浏览器中处理
- 数据不离开你的设备
- 免费 · 无需注册
用微信扫描以下二维码即可分享
示例、说明与常见问题 带实际输出的示例、与同类工具的差别,以及常见问题。
示例:从电子表格复制季度数据
左上角是空单元格,一个单元格里有两行备注,最后一格为空。粘贴到第一个表头单元格,并把「一季度」设为右对齐:
| | 一季度 | 二季度 |
| ---- | -----: | -------------------- |
| 华东 | 1,200 | 延迟:<br>供应商缺货 |
| 华南 | 980 | |
空的第一格保留了自己的列,「一季度」仍在「1,200」上方。单元格里的换行写成 <br>,因为真正的换行会结束这一行(GFM 规范 4.10 节)。
示例:全角竖线写的表格
如果手写表格时竖线和横线打成了全角的 | -(例如开着全角标点输入),GFM 不会识别:它只认半角 |,这样的表格在 GitHub、Gitee 上显示为一段普通文字(本工具测试脚本记录了两家 API 的实际返回)。把它粘贴到「导入数据」:
|接口|方法|说明|
|---|:--:|---|
|/users|GET|用户列表|
|/users/{id}|DELETE|删除用户|
工具按半角读取并在状态栏说明,输出:
| 接口 | 方法 | 说明 |
| ----------- | :----: | -------- |
| /users | GET | 用户列表 |
| /users/{id} | DELETE | 删除用户 |
只有分隔行里的全角横线和冒号会改成半角,单元格里的「:」原样保留。
示例:数据库字段表里的下划线
单元格默认按 Markdown 处理,**加粗**、`代码` 和链接都能用。字段名里的 _ 和 * 却不该变成格式。把「单元格内容」设为纯文本:
| 字段 | 类型 | 说明 |
| --------- | ------- | ---------- |
| user_id | bigint | 主键 |
| \_deleted | bool | 软删除标记 |
| tags | varchar | 用 \| 分隔 |
user_id 中间的下划线不会触发斜体,所以不加反斜杠;开头的 _deleted 会加。选 Markdown 模式时,输出下方会提示有几个单元格渲染后和原文不同。
Gitee、GitHub 与 micromark 的差异
测试脚本把输出交给 micromark 渲染,并与 2026-10-02 从 GitHub、Gitee 的 Markdown API 以及 Zenn、Qiita 的渲染器取回的 HTML 逐格对比:
单元格里写 GitHub / Gitee / Qiita / Zenn micromark(remark、MDX、Astro)
a\|b a|b a|b
x\\|y 一个单元格 x|y 两个单元格 x\ 和 y
`a|b` 在 `a 处结束单元格 同左
行一<br>行二 换行 允许 HTML 时换行
**注意:**这里 不加粗 不加粗
工具不会写出 \\|。最后一行是 CommonMark 的规则:** 紧挨着全角标点「:」时不能开始或结束强调,写成 **注意**:这里 即可加粗。
中文列为什么能对齐
「列对齐」排版按显示宽度补空格:汉字、假名、谚文、全角符号和 emoji 计 2 列,组合符号计 0 列,依据 Unicode UAX #11 与 EastAsianWidth 18.0.0 数据。计算规则与 markdownlint 的 MD060 所用的 string-width 8.1.0 一致,测试脚本用 MD055、MD056、MD058、MD060 检查了 200 个随机表格的两种排版。○ × ① → 这类字符在 UAX #11 里属于宽度不定(在东亚旧字符集里是全角)。如果编辑器把它们显示为 2 列,勾选对应选项。
与同类工具对比
2026-10-02 用同一组数据(左上角空单元格、两行单元格、a|b、5*3*2、东京)测试:
- tableconvert.com(中文版在 Bing「markdown表格生成」排第一)从 Excel 读取时丢掉左上角的空单元格,表头因此少一列,数据行多出的单元格在 GitHub 上不显示;
a|b没有转义。 - tablesgenerator.com 的「Paste table data」把文本以表单 POST 提交到它的服务器,同样丢掉空单元格,并把两行单元格拆成两行。
- 两者都按字符数补空格,
东京所在的格在等宽字体里多出两列宽,对不齐。
限制
- 不支持合并单元格:GFM 没有 colspan / rowspan,HTML 里的合并单元格会拆开,文字放在第一格。
- 单元格里只能写行内 Markdown,不能放列表、引用或代码块。
- 单元格首尾空格会被 GFM 去掉,制表符写成空格。
- 网格只显示前 1,000 行,Markdown 输出包含全部行。
- 导入时只读取文本里的第一个 Markdown 表格、HTML 里的第一个
<table>。 - 导入的文本读不了时不导入,输出保持为空,直到文本能读取:JSON 有语法错误时给出行和列(「自动识别」下只要文本像 JSON 值那样开头也如此,
[{"a":1},报「第 1 行第 10 列」);Markdown 表格的分隔行与表头行单元格数不同时写出所在行。CSV 字段以引号开头却没有闭合时按原样导入,并提示所在行。 - 「打开文件」和拖入一次读取一个 CSV、TSV、JSON、Markdown 或 HTML 文件,不超过 10 MB,按 UTF-8 读取。其他编码的文件不会打开:Excel 用 GBK 保存、第一行是
name,city的 CSV 会提示「第 10 个字节(从 0 数)不是有效的 UTF-8」。在 Excel 里另存为「CSV UTF-8」后再打开。
只需单向转换 CSV 时用 CSV 转 Markdown 表格;整页 HTML 转换用 HTML 转 Markdown;想看表格在全文里的效果,用 Markdown 预览。
FAQ
Markdown 表格的单元格里怎么换行?
GFM 表格的每一行只能写在一行里,单元格里出现真正的换行会把这一行截断。在单元格里按 Shift+Enter,工具会在该处写入 <br>,GitHub、Gitee、Qiita、Zenn 都把它显示为换行。如果你的渲染器会过滤 HTML,把「换行」设为空格。
为什么单元格里的竖线会把表格弄乱?
未转义的 | 一律开始新的单元格,在 `代码` 里也一样。工具把单元格里的 | 写成 \|。反斜杠紧跟竖线写成 \\\|,因为 \\| 在 GitHub 上是一个单元格,在 micromark(remark、MDX、Astro)里却会被拆成两个。
可以直接粘贴 Excel 或 WPS 表格里复制的单元格吗?
可以。点任意单元格后粘贴。剪贴板里有 HTML 表格时工具读取它(合并单元格会拆开,单元格内的换行保留),否则按制表符分隔的文本读取。空单元格(包括左上角的空单元格)保持原位。
为什么在编辑器里列还是对不齐?
工具按显示宽度补空格:汉字、全角符号和 emoji 计 2 列(Unicode UAX #11)。只有在中文字形正好是英文两倍宽的字体里(终端或中文等宽字体)列才会对齐,比例字体里不会对齐。
表格内容会上传到服务器吗?
不会。编辑、导入和预览都在浏览器里完成。页面只在本机记住输出选项(排版、单元格内容、换行、宽度不定字符和 Markdown / 预览视图),不保存表格内容。