起因
Markdown是个挺好用的文档写作语言,有点有很多,学习成本低、很轻量、生成的文档也很美观、能很流畅的书写。
当然缺点也是有的,其中一个缺点就是markdown语法画表格实在太繁琐了,不过由于是纯文本编辑也的确有这样的限制。
最近在写文档时,涉及大量表格的编写,想法是在Excel里写好,再使用工具转成markdown格式。工具找到两个:
- VS Code 的插件
Excel to Markdown table
- Exceltk
结果使用下来两个都有缺陷,Excel to Markdown table
中文转成了乱码,Exceltk
转出来的markdown有多于拼音字母,怀疑是由于拼音输入法导致。
由于上面问题想了想干脆自己写个工具吧(造个轮子)。
转换工具
也就是 soc-excel-convert 项目 云海Excel转换,使用Python开发,基于 openpyxl 读取Excel。
由于是使用python3.7开发,因此应该只支持Python3+,等有空也把Python2.7支持上吧。
目前是 0.9.3 版本,支持转换markdown表格,json暂时还不支持,其中对于文本中的特殊字符也会进行转义,比如换行符、大于、小于等。
使用也很方便,首先使用 pip
安装模块:
pip install soc-excel-convert
简单执行命令如下:
soc-excel-convert -e ./test/excel/demo1.xlsx
默认会在当前路径下生成demo1
目录,以文件名命名,文件夹中会生成对应sheet的md文件,每个sheet一个,如下图:
其中文档中的对齐策略以标题为准(即Excel首行内容),文件内容如下:
|English|中文|左对齐|中间对齐|右对齐|数量|带小数点数字|日期|超链接|换行|特殊字符|
|:--|:--|:--|:--:|--:|:--:|:--|:--|:--|:--|:--|
|show|怒发冲冠,凭栏处、潇潇雨歇。|左对齐|中间对齐|右对齐|3|19001.123456789|2019-07-19 12:12:11|从这里点击|从这里<br />换行|特殊>字符|
|me|抬望眼,仰天长啸,壮怀激烈。|左对齐|中间对齐|右对齐|4|1902200001.12345|2019-07-20 00:00:00|[这里](https://github.com/treeyh)|这里换<br />行|特殊|字符|
|the|三十功名尘与土,八千里路云和月。|左对齐|中间对齐|右对齐|5|1931231001.12345|2019-07-21 00:00:00|从这里打开|这里换行<br />|特殊<字符|
|money|莫等闲,白了少年头,空悲切!|左对齐|中间对齐|右对齐|6|19001.123456789|2019-07-22 00:00:00|[这里](https://github.com/treeyh)|<br />这里换行|特殊&字符|
然后贴到对应的markdown文档里就好啦。
附上参数说明:
短参数名 | 长参数名 | 是否必传 | 默认值 | 描述 |
---|---|---|---|---|
-e | --excel | Y | None | 指定需要转换的excel文件路径 |
-m | --mode | N | md | 指定转换格式, 可选参数: md(markdown)和json. <br />不传默认为md. 目前仅支持md; |
-s | --sheets | N | '' | 指定输出哪些sheet表格, 不传输出所有; |
-t | --target | N | ./{fileName}/ | 输出目标路径. 不传默认当前目录. <br />如果目录不存在则会自动创建; |
欢迎大家使用。
最后,感兴趣点个star呗 ^-^ soc-excel-convert