一、背景
由于自己工作的关系,工作过程中会填写很多表格,在办公室使用电脑查看或者打印出来查看还好,一但在没有电脑的场合——车间、出差路上、外协厂等场所,只能使用手机查看Excel数据,虽然手机可以横屏查看,但是相比于表格内容,横屏的体验也算不上太好。
前段时间在少数派上拜读了hAppydOg
所写的《利用欧路词典查询产品信息》1一文,感觉很有启发。引用文章中的一句话:
表格中的产品信息本质上来说都是一组组词典,一个代码对应一条详细内容。既然是词典,用词典类 App 是最好的解决方案。
文章中提到的两个工具,ExcelToTxt
和MdxBuilder
。其中ExcelToTxt
是一个将Excel表格中的数据转换成符合Mdx
字典格式转换标准的txt文档的工具,而MdxBuilder
则是将获取的txt文档转换为Mdx
字典格式的工具。
最近在学习Python,Python 是一种易于学习又功能强大的编程语言。它提供了高效的高级数据结构,还能简单有效地面向对象编程2。
苦于目前没有合适的机会测试下自己的学习成果,于是想着自己用Python写一段代码,用来实现和ExcelToTxt
实现相同的功能。
二、准备
工欲善其事必先利其器。
要读写Excel文档,光有Python环境还不行,还需要有合适的库来支撑文件的读写。在Python众多第三方读写Excel文档库中,我最终选择了OpenPyxl
这个第三方库。OpenPyXL
是一个用于读写Excel2010及以上版本的xlsx/xlsm/xltx
及xltm
文件的第三方Python库3。通过OpenPyXL
库可以完成Excel的大多数操作。
三、思路
因为最终我只需要每个单元格中的值即可,在OpenPyxl
中,我们可以通过cell.value
属性,通过迭代单元格获取每个单元格的值:
for row in rows:
for cell in row:
cellvalue = cell.value
通过这样的方法,可以分别获取Excel表格中的标题部分和正文部分的内容,然后再通过迭代将他们一一关联起来。
获取了标题和正文对应的数据