OpenHarmony开发者论坛

标题: 【SUBJECT技术】OpenHarmony说明文档之快速制作 Markdown 复杂表格 [打印本页]

作者: wangyeyu01    时间: 2023-12-13 20:27
标题: 【SUBJECT技术】OpenHarmony说明文档之快速制作 Markdown 复杂表格
[md]# 一、快速制作 Markdown 复杂表格

Markdown 作为程序员书写说明文档必备神器,其优点不必多言。然而,制作超大表格、跨行、跨列且一个单元格含有多行的情况,能力显得捉襟见肘。如果能贴图解决就不要往下看了,但是非要用Markdown实现复杂表格请继续。

## 1.1 Markdown 能力所及的表格样式是这样的

单元格数少于100的,每列单元格宽度基本相等,每个单元格最多出现一行文字。当然若有顽强的毅力,单元格个数不是问题,但不是程序员的追求。

| 颜色名       | HEX 颜色值 | RGB 颜色           |
| :----------- | ---------- | ------------------ |
| 黑色(black)  | 000000     | rgb(0, 0, 0)       |
| 蓝色(blue)   | 0000FF     | rgb(0, 0, 255)     |
| 灰色(grey)   | 808080     | rgb(128, 128, 128) |
| 绿色(green)  | 008000     | rgb(0, 128, 0)     |
| 橙色(orange) | FFA500     | rgb(255, 165, 0)   |
| 红色 (red)   | FF0000     | rgb(255, 0, 0)     |
| 黄色(yellow) | FFFF00     | rgb(255, 255, 0)   |

## 1.2 面对复杂表格,大佬搞出来一个 Markdown表格生成器

供大家在线使用,链接如下:
https://www.tablesgenerator.com/markdown_tables

## 1.3 Markdown 写作工具 Typora 制作表格

也只能生成一些简单的表格而已,作用就是让你不再书写那些烦人的 '|'

## 1.4 Markdown 开发者也意识到了这个问题

他们是这样解决的,不得不抛弃自己的矜持(简易、朴素、平易近人)采用了 Html 样式(繁文缛节、不可阅读)来实现。网上尽是让你按照 HTML中 table语法如何去实现,我可不想这样干。

## 1.5 简单粗暴的 Excel 表格替换法

1. 针对一个单元格有多行,并且无跨行、跨列的情况;
2. Excel打开对应 xlsx文件:
3. 硬换行修改为\<br>换行。Ctrl+H 替换,输入查找内容:'^l'(特殊内容:换行符),输入替换为:' \<br\>',注意'\<br\>'前面有一个空格**小秘密**:\<br>前面添加一个空格能让路径真正换行不能换行:\frameworks\native\miscdevice\<br>include\i_miscdevice_service.h能换行:\frameworks\native\miscdevice\ <br>include\i_miscdevice_service.h

   ![replace.PNG](https://forums-obs.openharmony.c ... xkx9inppz46kgix.png "replace.PNG")
4. 替换单元格空值为None。Ctrl+H 替换,输入查找内容:,输入替换为:None;
5. 框选表格,复制到Notepad,在Notepad中替换'\t' 为 ' | ',(要选中 Extended项);

   ![notepad--replace.PNG](https://forums-obs.openharmony.c ... phlps6hzlzxltgp.png "notepad--replace.PNG")
6. 根据列数添加一行 --- | --- | --- | --- ......,放在文件第二行的位置;
7. 保存成 md文件即可。

# 二、以上方法生成的md,各列内容没有对齐造成表格不美观

搜索:“Excel自动生成Markdown表格的python处理”![](https://forums.openharmony.cn/fo ... thread&tid=1435) 这篇文章,着重解决了以下问题:

1. 如果有长短不一的单元格存在,markdown 自动生成的表格没有对齐,原始文本看起来不够美观;
2. 相同长度中英文字符串显示宽度不同,按照字符长度填充,仍然会参差不齐。
3. Excel 表格如何转换为 Markdown 文件;
4. Excel 中一个单元格有多行的情况,如何生成<br> Markdown 换行;
5. Excel 中有空值,尤其是第一列有空值,格式化后该行其他列会前移;

# 三、Excel->HTML->Markdown 的无奈选择

Excel最擅长制作复杂表格,再导出Markdown需要的HTML 样式,最后稍加修改成 md 表格。

1. 首先,在Excel中填写内容、设计风格(对开发者而言,Excel表格早都准备妥当了);
2. 然后,另存为 网页文件 *.html 格式;

   ![save_html.PNG](https://forums-obs.openharmony.c ... 3a33wz3pfiuaau8.png "save_html.PNG")
3. 进入*.html 文件所在目录,将文件改名为 *.md;
4. 最后,用文本编辑器(Notepad,或者写字本,或者 Typora,或者vscode等等)打开 *.html 文件,保留<table>...</table> 这一部分内容即可;

   ![extract_table.PNG](https://forums-obs.openharmony.c ... 2gc020dgookloni.png "extract_table.PNG")
5. 制作表格完成;

**注意**

1. Excel有多个不同sheet,就会导出多个sheet的HTML文件,记得修改对应sheet的HTML文件;
2. Excel 单元格中有超长行,用‘Alt+Enter’在合适的位置强制换行;
3. 小技巧,删除 style='' 属性,让文档看起来更干净些,用NotePad 正则表达式替换,如图:

   ![delet_style.PNG](https://forums-obs.openharmony.c ... n0g4xbm44lxbxg1.png "delet_style.PNG")

# 四、HTML 表格语法

这一部分可能用不到,一般情况不需要二次修改了。

## table: 表格标签的属性

HTML表格由 table 标签来定义;
表格的表头由 th 标签定义;
表格的每一行由 tr 标签定义;
每行被分割的单元格由 td 标签定义;
border: 用于设置表格的边框大小

## th,td: 标签的属性

colspan: 表示一个格子可以跨几列
rowspan: 表示一个格子可以跨几行
bgcolor: 定义单元格的背景色,用十六进制rgb表示颜色
width: 表示单元格的宽度,可以用百分比表示,也可以用数值表示
height: 表示单元格的高度,用数值表示
align: 表示对齐方式,取值有left、right、center

# 五、总结

以上由简到难从几个方面阐述了Markdown表格制作的方法,应实际情况采用合适的方法。每种方法都经过了验证,可指导实际操作。
[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5