使用 pyExcelerator 读 Execl 文件
读文件的方法:
from pyExcelerator import *
sheets = parse_xls("E:\work_python\wx\对应400张卡卡号.xls")
这样 Execl 文档中的数据就存入变量 sheets 中了.
分析读出的数据
打印 sheets
>>> sheets
[(u'\u4e3b\u53f7\u526f\u53f7', {(0, 1): u'62172168', (0, 3): u'8985302080853097600---8985302080853097999', (0, 0): 1.0, (0, 2): u'15338172168'}), (u'Sheet2', {}), (u'Sheet3', {})]
发现 sheets 为一个 list. 该 list 中, 第一个元素为 "工作表1", 第二个为 "工作表2"
即, sheets = [工作表1, 工作表2, ...]
打印 sheets[0]
>>> sheets[0]
(u'\u4e3b\u53f7\u526f\u53f7', {(0, 1): u'62172168', (0, 3): u'8985302080853097600---8985302080853097999', (0, 0): 1.0, (0, 2): u'15338172168'})
sheets[0] 为一个 tuple. tuple 的第一个元素为 "工作表"的表名, 第二个元素为 "工作表"的内容.
即, sheets[0] = (工作表名, 工作表内容)
分析工作表内容.
打印 sheets[0][1]
>>> sheets[0][1]
{(0, 1): u'62172168', (0, 3): u'8985302080853097600---8985302080853097999', (0, 0): 1.0, (0, 2): u'15338172168'}
内容存放在一个 dict 中, 坐标当键、内容为值。
因此 parse_xls 返回的结果结构如下图:
为了得到指定的元素, 比如表格1第1行第2列的元素:
sheets[0][1][(1,2)]
定义成函数:
read_xls = lambda x, y, z: sheets[x][1][(y,z)]
函数 read_xls 入参: 工作表格序号, 元素的行号, 元素的列号