概述
本文将介绍一个我简单实现的一个Excel数据读取模块,用于快速地读取Excel文件内容。使用者可以无需关注openpyxl
的各种实现细节。
代码地址
代码地址:[代码地址](https://github.com/ZhengqiaoWang/codesnippet/blob/main/python/excel_oper.py)
代码使用示例
我们先提前准备一个Excel表:
https://github.com/ZhengqiaoWang/codesnippet/blob/main/python/resource/excel_oper.xls
读取Excel文件
注意:使用如下代码读取Excel文件时会自动将xls格式的文件在同目录转换成xlsx格式(不影响源文件),因此如果同名目录有同名但后缀为
.xlsx
的文件可能会弹窗提示是否覆盖
以下代码见UT
1 |
|
下面是详解:
1 |
|
在这里,我们使用ExcelOper.translateToXLSX
将xls
文件转换为xlsx
文件。然后打开了第一个表(表索引为0)。
1 |
|
这里我们设置了从第2行开始读,读到倒数第2行(也就是21行)。设置要取列B和列G,列名分别是列one
和列six
。
Excel中第一列是A,第二列是B….第7列是G。而不是第一行中所写的列1…6
这里为什么用
列one
和列six
就是为了和第一行区分开,这个列名是自定义的,可以与表中的列名不一致,但要求唯一,即不能出现不同列但名一样的情况。这个列名将用来获取列的值。
然后我们就开始获取数据:
1 |
|
在这里我们就可以通过dict
来获取每行的数据了,值得注意的是,每行都是一个dict
,其中的key
则是我们刚刚自定义的列名,值则是个字符串,因此我们对于数字可能需要进行格式转换,正如上面的int
一样。
于是我们就可以得到我们想要的结果了。