[经验分享] 【SUBJECT技术】OpenHarmony说明文档之快速制作 Markdown 复杂表格 原创

诚迈_雨哥 显示全部楼层 发表于 2023-12-13 20:27:13

一、快速制作 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

  4. 替换单元格空值为None。Ctrl+H 替换,输入查找内容:,输入替换为:None;

  5. 框选表格,复制到Notepad,在Notepad中替换'\t' 为 ' | ',(要选中 Extended项);

    notepad--replace.PNG

  6. 根据列数添加一行 --- | --- | --- | --- ......,放在文件第二行的位置;

  7. 保存成 md文件即可。

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

搜索:“Excel自动生成Markdown表格的python处理” 这篇文章,着重解决了以下问题:

  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

  3. 进入.html 文件所在目录,将文件改名为 .md;

  4. 最后,用文本编辑器(Notepad,或者写字本,或者 Typora,或者vscode等等)打开 *.html 文件,保留<table>...</table> 这一部分内容即可;

    extract_table.PNG

  5. 制作表格完成;

注意

  1. Excel有多个不同sheet,就会导出多个sheet的HTML文件,记得修改对应sheet的HTML文件;

  2. Excel 单元格中有超长行,用‘Alt+Enter’在合适的位置强制换行;

  3. 小技巧,删除 style='' 属性,让文档看起来更干净些,用NotePad 正则表达式替换,如图:

    delet_style.PNG

四、HTML 表格语法

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

table: 表格标签的属性

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

th,td: 标签的属性

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

五、总结

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

©著作权归作者所有,转载或内容合作请联系作者

您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部