Markdown 表格生成器,免费
使用类似电子表格的编辑器可视化构建 Markdown 表格。
点击每个列标题下方的 L / C / R 设置对齐方式(左、中、右)。
Markdown 输出
关于 Markdown 表格
Markdown 表格使用竖线(|)和连字符(-)在纯文本中创建结构化的表格数据。GitHub、GitLab、Reddit 以及大多数 Markdown 渲染器都支持。对齐行使用冒号来指示每一列的左、中或右对齐。
手写 Markdown 表格既繁琐又容易出错。此可视化编辑器让您像使用电子表格一样输入数据,并实时生成格式正确的 Markdown。所有处理都在您的浏览器中完成。
管道表(pipe-table)语法的机理
一张 GFM 表由三部分构成:一行 表头,单元格之间用竖线 (|) 分隔;紧接其下的一行 分隔符,每列用一段连字符 (---);以及零或多行 数据行,结构与表头相同。每行首尾的竖线可有可无,按惯例保留以利可读。列对齐由分隔行里的冒号决定::--- 表示左对齐(同时也是默认),:---: 表示居中,---: 表示右对齐。最小可用的表在源代码里长这样:第 1 行 | Header | Header |,第 2 行 | --- | --- |,第 3 行起 | Cell | Cell |。单元格内容可以包含任意行内 Markdown 格式(粗体、斜体、链接、行内代码、图片),但不能包含块级元素(列表、代码块、引用块)。单元格里要换行,必须写成 <br>,而不是字面意义上的换行(后者会破坏表结构。单元格内的竖线必须转义为 \|,否则解析器会把它当成列分隔,整行的列数就乱了。大多数解析器对列宽不齐有容忍:| a | b | 与 | aaa | b | 渲染结果相同)尽管后者在源码里看起来更「整齐」。本工具为了源码可读性始终输出对齐宽度,但渲染结果与紧凑源码完全一致。
表能在哪儿渲染,不能在哪儿
能正常渲染的:GitHub(issues、pull requests、READMEs、wiki 页面、讨论、code review、几乎所有评论区)、GitLab(同样的若干面)、Bitbucket、Stack Overflow、Reddit(在启用了 GFM 的子版块里,多数子版块都启用了)、Discord(仅在代码块上下文里,聊天消息里不渲染完整 GFM 表,但其文档面的 markdown-it 会处理)、Notion(带自己的表导入)、Obsidian、Logseq、Bear,大多数静态站点生成器(Hugo、Jekyll、Eleventy、装了 remark-gfm 插件的 Astro、Next.js 的 MDX)、VS Code 的预览、GitHub Pages、Read the Docs(视配置而定)。不能正常渲染的:严格 CommonMark(不带扩展用 commonmark reader 的 Pandoc、未开启 pipe-table 标志的 Discount C 解析器)、Slack(渲染 Markdown 的一个子集,但没有表)、大多数邮件客户端(邮件里渲染出的 HTML 结构上没问题但是内联样式,不是 Markdown)、未装 Markdown 插件的老 WordPress。一般原则:目的地是面向开发者的平台(GitHub 家族、技术文档)时,GFM 表能用;目的地是面向大众的平台(Slack、邮件、Twitter)时,应假设表不会渲染,要么预渲染为图片,要么改写成列表。
其他 Markdown 表格语法
管道表格式因 GitHub 的覆盖面而占主导,但它并非唯一的 Markdown 表语法。Pandoc 简单表用「空行加连字符」作分隔、按视觉位置(而非竖线)对齐列,对窄表来说可读性好得多,但更难手写。Pandoc 多行表支持跨多行的单元格,用于一行装不下的长描述。Pandoc 网格表用 ASCII 美术边框(+---+---+),手工维护看起来痛苦,但工具生成很容易。reStructuredText(Sphinx)完全使用网格表,每个 Python 项目的文档都是这么写的。AsciiDoc 使用一种不同的「竖线前缀」语法(|===),更适合写技术书。Markdown 里的 HTML 永远是兜底方案:任何 Markdown 处理器都会原样放行 HTML,因此当管道表不够用时,你可以直接放一个真正的 <table>,享有完整的行/列合并、语义标签和 CSS 样式。本工具生成的是 GFM 风格的管道表语法,对现代开发者生态而言兼容性最好的选择。
常见用途
- GitHub README 文件。对比表(「我们的库 vs 其它选择」)、功能矩阵、支持版本列表、贡献者名单、命令速查卡。可能是 GFM 表在生产中最常见的单一用途。
- 文档与 wiki。API 参考表(参数名 / 类型 / 描述 / 默认值)、配置项表、错误码参考、语言翻译矩阵。Read the Docs、MkDocs、Docusaurus、GitBook 都支持 GFM 表。
- 对比类博客文章。「框架 X vs 框架 Y」、硬件规格对比、价格档拆解。管道表格式比临时拼凑的段落可读得多,在 Medium、dev.to、Substack 与个人博客上都能干净地渲染。
- 定价页。SaaS 的档位表(Free / Pro / Enterprise 横排功能行)作为商业设计师做出精修 HTML 之前的快速草稿样机,管道表形式表现良好。
- GitHub issue 模板。缺陷报告模板常以表格形式罗列复现步骤(步骤 / 期望 / 实际 / 截图)。用于跟踪冲刺进度的项目看板状态表。
- 会议纪要与项目计划。共享笔记里的行动项表(负责人 / 行动 / 截止 / 状态)。决策日志。风险登记册。
- CSV 导入。不少表生成器都提供 CSV-到-Markdown 的导入,粘进 CSV,得到一张 Markdown 表。反向(Markdown 到 CSV)也很常见,用于把文档里的结构化数据抽回到表格软件里。
宽度问题与其他约束
管道表有几个内在的限制,值得知道。列宽受最长单元格内容的约束(某个单元格里的长 URL 或长描述会把整列撑宽,可能产生塞不进标准文档页宽度的庞大表。修补办法要么截断长内容(详情链到别处),要么改用内联 HTML 以获得可换行的单元格。没有行/列合并)每个单元格只占一行一列。需要合并单元格的复杂表必须用真正的 HTML <table> 加 rowspan / colspan。不能嵌套表(Markdown 里没法把一张表放进另一张表的单元格里。单元格里不能放块级内容)单元格内不允许列表、代码块、引用块。行内内容(粗体、斜体、行内代码、链接、图片)没问题,但任何多行内容都要靠 <br>。GFM 中表头是必须的(没有「无表头」语法。如果你想要一张没有可见表头的表,把表头单元格留空,但那一行依然得在。对齐是按整列生效的)不能在同一列里给不同单元格设置不同对齐。对超出上述约束的复杂表布局,正确的工具是你 Markdown 源文件中的 HTML,而不是 Markdown 本身。
CSV ↔ Markdown 互转
现实世界里多数表格数据存在 CSV 文件中(电子表格导出、API 响应、日志分析输出),与 Markdown 互转是常见工作流。CSV → Markdown:解析 CSV(处理被引号包裹的字段中的逗号、被转义的引号、字段内的换行),然后把每行格式化为 | 值 | 值 | 并加上恰当的表头和分隔行。多数表生成器(包括本工具)都提供 CSV 导入;做一次性转换也可以用 csvkit 的 csvlook 命令行工具,它产出类似的管道格式输出。Markdown → CSV:把 GFM 表反解析回行与列,再用合适的引号生成 CSV。把文档里的结构化数据抽回表格软件分析时很有用。Markdown-到-CSV 这个方向,由 pandoc(搭配正确的 reader/writer)、tableconvert.com 以及各类命令行工具提供。一来一回中有一个方向是有损的,格式(粗体、链接、图片)只有在你把 CSV 单元格内容当作原始 Markdown 文本写入、最终结果又当作 Markdown 处理时才能完好穿过 CSV 这一步。
隐私:为什么连这里都要「只在浏览器里跑」
表看起来不像敏感数据,但表的内容往往是。项目计划里有人事决策与未公开的特性。定价表里有商业信息。未发表博客里的对比表会泄露编辑立场。会议纪要的行动项里有分配与问责信息。服务器端的表生成器会把你的数据上传到第三方,并在日志里留存。本工具完全在你的浏览器里通过 JavaScript 运行,你可以在编辑单元格时打开 DevTools 的 Network 选项卡核对,或者在页面加载后切到离线(飞行模式),编辑器仍然可用。对于未发表的文档草稿、内部项目规划、尚未发布的对比表,或任何你不愿被复制到陌生人硬盘上的表格内容,都可以放心使用。
常见问题
生成的是哪种 Markdown 表格语法?
它生成标准的 GFM(GitHub Flavored Markdown)语法,带竖线、一行连字符分隔和可选的冒号用于对齐。此语法在 GitHub、GitLab、Reddit、Jekyll、Hugo 以及大多数 Markdown 处理器中都有效。
如何设置列对齐方式?
点击每个列标题下方的 L(左)、C(中)或 R(右)按钮。左对齐在分隔行中使用 :---,居中使用 :---:,右对齐使用 ---:。
可以从 CSV 导入或从电子表格里直接粘贴吗?
CSV 导入在路线图上。目前从 Excel/Google Sheets 直接粘贴往往可用,多数电子表格 App 会把数据以制表分隔的形式放进剪贴板,你可以分别粘进每个单元格。如要不经手工粘贴的批量 CSV 导入,命令行工具如 csvkit 的 csvlook 能产出类似的 GFM 表输出,或者 pandoc 可以用 pandoc --from csv --to gfm input.csv 把 CSV 直接转成 Markdown。
合并单元格、嵌套表,或在单元格里放块级内容呢?
GFM 管道表都不支持。每个单元格只占一行一列;没有 rowspan、colspan。没有嵌套表。单元格里不能有块级内容(列表、代码块、引用块),只允许行内内容(粗体、斜体、行内代码、链接、图片、通过 <br> 的换行)。如果需要超出这些约束的复杂表布局,请直接把原始的 HTML <table> 嵌入到 Markdown 源代码里,任何 Markdown 处理器都会原样放行 HTML。代价是源文件会更难手工阅读和编辑。
行或列有数量限制吗?
最多可以有 20 列和 100 行。对于大多数文档和 README 文件来说绰绰有余。表格会在您输入时实时更新。
我的表格内容会被发送到任何地方吗?
不会。生成完全在你的浏览器里通过 JavaScript 运行。你编辑的单元格与 Markdown 输出都不会过网络,你可以在键入时打开 DevTools 的 Network 选项卡核对,或者在页面加载后切到离线(飞行模式),编辑器照样工作。对于未发表的文档草稿、内部项目计划、尚未发布的价格对比表,或任何你不愿被复制到陌生人硬盘上的表格内容,都可以放心使用。