首先讲一下两个库:xlrd 和 pyExcelerator,xlrd从名字上来看就是读excel比较方便的,而pyExcelerator对于生成excel并写excel很方便。让我们分析一下上述代码的两个函数:

 

 
1
def
openExcelFile(self,index):
2
self.bk
=
xlrd.open_workbook(self.fname)
3
self.sh
=
self.bk.sheets()[index]
4
self.nrows
=
self.sh.nrows
5
self.dic3
=
{}

      行2是打开一个文件名为self.fname的excel工作薄,行3是获取工作薄中的第(index+1)张表,因为一个工作薄里可以新建好几张表,它 们的索引从0开始,行4记录了这张表里数据的行数。下面读取每个表格的值就很容易了,sh.row(i)[3]这个就代表第i行的第4列.特别注意 sh.row(i)[3][7:-1]才能取到正确的字符串值,和excel的编码有关。

 

def saveResult(self):  2         wb = Workbook()  3         for key,values in CpuTestTime.StateTable.items():  4             loop = 1  5             ws = wb.add_sheet(key)  6             ws.write(0,0,'STATE')  7             ws.write(0,1,'ELAPSED_TIME')  8             ws.write(0,2,'CPU_ELAPSED_TIME')  9             ws.write(0,3,'COUNT') 10             for value in values: 11                 ws.write(loop,0,value) 12                 ws.write(loop,1,round(self.dic3[key][value]['ELAPSED_TIME'],2)) 13                 ws.write(loop,2,round(self.dic3[key][value]['CPU_ELAPSED_TIME'],2)) 14                 ws.write(loop,3,self.dic3[key][value]['COUNT']) 15                 loop = loop+1 16         wb.save('result'+FILENAME)  上面这段代码,行2创建一个excel工作薄,行5增加一个表,行6写cell(0,0)单元格,值为最后一个参数'STATE'。行16保存到文件。          这种方式处理excel表比较好懂,也比较简单