python读取Excel
概述
很多场景中需要读取excel,常用的python模块有xlrd,我在这里介绍 pyexcel-xls 这个东西。我个人觉得这个东西导出的数据结构,结构可读性很强,数据结构如下:
整个excel文件,转化为一个字典结构:每个key就是一个子表(Sheet)
每个子表(Sheet),转化为一个二维数组:分别为行和列。
安装
首先要安装pyexcel-xls这个插件,
直接运行‘pip install pyexcel-xls’,
pyexcel-xls依赖于xlrd 和 xlwt-future 。
示例
使用座位号导入来做个示例,如下图是导入的数据,分为sheet1和sheet2两个sheet
代码如下:
from pyexcel_xls import g6et_data
import json
data = get_data("testexcel.xlsx")
excel_data = eval(json.dumps(data))
变量data取出的类型和值如下
类型:
值:OrderedDict([(‘Sheet1’, [[‘10.102.32.234-G0/0/1’, ‘B区-8F-144A’], [‘10.102.32.234-G0/0/2’, ‘B区-8F-145A’], [‘10.102.32.234-G0/0/3’, ‘B区-8F-146A’], [‘10.102.32.234-G0/0/4’, ‘B区-8F-147A’], [‘10.102.32.234-G0/0/5’, ‘B区-8F-148A’], [‘10.102.32.234-G0/0/6’, ‘B区-8F-149A’], [‘10.102.32.234-G0/0/7’, ‘B区-8F-150A’]]), (‘Sheet2’, [[‘10.102.32.235-G0/0/1’, ‘B区-8楼-190A’], [‘10.102.32.235-G0/0/2’, ‘B区-8楼-213A’], [‘10.102.32.235-G0/0/3’, ‘B区-8楼-191A’], [‘10.102.32.235-G0/0/4’, ‘B区-8楼-214A’], [‘10.102.32.235-G0/0/5’, ‘B区-8楼-192A’], [‘10.102.32.235-G0/0/6’, ‘B区-8楼-215A’], [‘10.102.32.235-G0/0/7’, ‘B区-8楼-193A’]])])
再将data进行格式转换成excel_data,excel_data类型和格式如下
类型:
值:{‘Sheet2’: [[‘10.102.32.235-G0/0/1’, ‘B区-8楼-190A’], [‘10.102.32.235-G0/0/2’, ‘B区-8楼-213A’], [‘10.102.32.235-G0/0/3’, ‘B区-8楼-191A’], [‘10.102.32.235-G0/0/4’, ‘B区-8楼-214A’], [‘10.102.32.235-G0/0/5’, ‘B区-8楼-192A’], [‘10.102.32.235-G0/0/6’, ‘B区-8楼-215A’], [‘10.102.32.235-G0/0/7’, ‘B区-8楼-193A’]], ‘Sheet1’: [[‘10.102.32.234-G0/0/1’, ‘B区-8F-144A’], [‘10.102.32.234-G0/0/2’, ‘B区-8F-145A’], [‘10.102.32.234-G0/0/3’, ‘B区-8F-146A’], [‘10.102.32.234-G0/0/4’, ‘B区-8F-147A’], [‘10.102.32.234-G0/0/5’, ‘B区-8F-148A’], [‘10.102.32.234-G0/0/6’, ‘B区-8F-149A’], [‘10.102.32.234-G0/0/7’, ‘B区-8F-150A’]]}
现在excel_data就是标准的python 字典格式了