数据与表格

Markdown 表格生成

在网格里编辑,或者从表格软件里复制一片单元格粘贴进来,选好每一列的对齐方式,就能复制出在 GitHub、Gitee、语雀、Notion 和大多数知识库里都能正常显示的 Markdown 表格。源码里的列也是对齐的,中文不会错位。

从 Excel、WPS、飞书表格、CSV 或现有的 Markdown 表格粘贴
预览

全部在你的浏览器里运行,这里输入的内容不会上传。

怎么用

  1. 直接在网格里输入,第一行是表头。用 + 行、+ 列 扩大表格,用 − 行、− 列 删除最后一行或一列。
  2. 或者展开从 … 粘贴,粘贴从 Excel、WPS、飞书表格里复制的单元格(它们会以制表符分隔的文字形式粘贴进来),也可以粘贴一段 CSV,或者一张想重新排版的 Markdown 表格,然后点导入。
  3. 在网格上方那一排下拉框里,为每一列选择对齐方式。数字列通常右对齐更好读。
  4. 复制生成的 Markdown,预览区会显示它渲染后的样子。

Markdown 表格的格式

最初的 Markdown 并没有表格,如今几乎所有平台使用的写法来自 GitHub Flavored Markdown 规范。一张表由表头行、分隔行和任意多行数据组成。单元格之间用竖线分隔,分隔行由连字符组成,用冒号表示对齐方式::--- 左对齐,:---: 居中,---: 右对齐。

| 商品 | 数量 | 单价 |
| :--- | ---: | ---: |
| 苹果 |    3 | 4.50 |
| 香蕉 |   12 | 0.80 |

转义

单元格里的竖线会被当作单元格结束,所以要写成 \|。Markdown 表格里也不能有真正的换行,单元格内的换行会转换成 <br>,GitHub 和大多数渲染器会把它显示为单元格内的换行。

源码对齐与中文宽度

渲染时并不要求列对齐,但直接阅读源文件的人需要,比如在代码评审的 diff 里,或者在编辑器里打开 README 时。本工具会按每一列的宽度给单元格补空格。在等宽字体里,汉字、日文、韩文和全角标点占两个英文字符的宽度,所以按宽度 2 计算。如果按字符个数来补,含中文的表格渲染出来没问题,源码却会参差不齐,这是很多同类工具的通病。

粘贴规则

表格软件复制单元格时会在格子之间插入制表符,所以粘贴的内容里只要有制表符,就按制表符拆分。如果每一行都以竖线开头和结尾,就当作现成的 Markdown 表格读取,这是给已有表格重新对齐的快捷办法。其他情况按 CSV 读取,带引号的字段会被正确处理。

示例

两列,第一列左对齐,第二列右对齐:

| Name  | Qty |
| :---- | --: |
| Apple |   3 |

单元格里有竖线,第二列居中:

| a\|b |  c  |
| ---- | :-: |

中文按双宽度计算,源码依旧对齐:

| 水果 | n   |
| ---- | --- |
| 苹果 | 1   |

每一列至少三个字符宽,这是分隔行的最小要求;某一行格子不够时,会补上空单元格。

局限

  • 不支持合并单元格和多行内容。 Markdown 表格严格一行对应一行,复杂的表格需要用 HTML。
  • 行内格式原样保留。 单元格里的 加粗、代码 等写法会原样输出,由你用的 Markdown 查看器渲染;本页预览里显示为纯文字。
  • 表情符号和少见文字的宽度是近似值,它们在不同字体里宽度不一致,但不影响渲染结果。
  • 并非所有平台都支持表格。 GitHub、Gitee、GitLab、语雀、Notion、Obsidian 和大多数静态网站生成器都支持;不带扩展的纯 CommonMark 不支持。

常见问题

怎么把 Excel 里的表格转成 Markdown?

在 Excel 里选中单元格并复制,在本页展开「从 … 粘贴」,粘贴后点「导入」即可。Excel 复制出来的是用制表符分隔的文字,会被自动拆成单元格。

怎么让某一列右对齐?

在那一列上方的下拉框里选「右对齐」,分隔行就会变成 ---: 这样右边带冒号。

单元格里要写竖线怎么办?

直接输入即可,工具会把它转义成 \|,不会被当成单元格的分隔。

为什么我在别处生成的中文表格,源码对不齐?

很多工具按字符个数补空格,而汉字在等宽字体里占两个字符宽。本工具按显示宽度计算,所以中英文混排的列也能对齐。

内容会被上传吗?

不会。表格在你的浏览器里生成。

参考资料

用到这个工具的指南

↵ 打开 · Esc 关闭