python操作excel文件一(xlrd读取文件)

  一般做接口测试,会把参数和一些数据放入excel表中,这样就不会重新编译代码,提高效率。一般如何操作呢?接下来跟着步骤一起学习吧

  执行步骤:

  1.首先要安装 xlrd这个模块,用 pip install xlrd

  2.倒入这个模块

  3.打开一个excel文件(建一个excel的对象)

  4.获取到想要的sheet

  5.得到想要的列的内容,或者行的内容,或者具体哪个单元格里面的内容

  我有一个excel文件:3行4列,有三页,分别是sheet1,sheet2,sheet3

代码:

#!/usr/bin/env/python
# -*-coding:utf-8-*-
import xlrd

class excelUse(object):

#Object:得到这个对象,也就是打开xlsx文件
Object = xlrd.open_workbook("exceldemo1.xlsx")

def getSheetsByIndex(self,index=0):
"""
通过索引得到
sheet: 得到第几页(index)的内容
:return: 返回第几页的内容
"""
sheet = self.Object.sheet_by_index(index) #通过sheet_by_index()这个方法,得到想要的具体的某一页
return sheet

def getSheetsByName(self,name):
"""
通过名字得到
:param sheetName:得到所有的sheet,而且他的类型是一个list类型
:return:
"""
sheetNames = self.Object.sheet_names() #通过sheet_names()这个方法,得到所有页的名
     print "sheetnames is {0},and the type is {1}".format(sheetNames, type(sheetNames))
        sheet = self.Object.sheet_by_name(name)   #通过sheet_by_name()这个方法,传入具体的sheet名字得到具体的sheet页
return sheet

def getNumber(self):
"""
获取sheet的名字,行数,列数,通过属性 name,nrows,ncols(是number+rols/cols)
:return:
"""
print "获取sheet的名字",self.getSheetsByIndex(0).name
print "获取sheet的行数",self.getSheetsByIndex(0).nrows
print "获取sheet的列数",self.getSheetsByIndex(0).ncols

def getRow(self,index=0):
"""
index: 第几行的内容,默认从0开始
:param index:
:return:
"""
print self.getSheetsByIndex(0).row_values(index)
print type(self.getSheetsByIndex(0).row_values(index))

def getCol(self,index=0):
"""
index:第几列的内容,默认从0开始
:return:
"""
print self.getSheetsByIndex(0).col_values(index)
print type(self.getSheetsByIndex(0).col_values(index))

  def getCell(self,rowIndex,colIndex):
"""
获取具体的单元格的内容
rowIndex:第几行
colIndex:第几列
     type:单元格数据的类型 
:return:
"""
print self.getSheetsByIndex(0).cell_value(rowIndex,colIndex)
print self.getSheetsByIndex(0).cell(rowIndex,colIndex)
#print self.getSheetsByName("sheet1").cell(rowIndex,colIndex)
type = self.getSheetsByIndex(0).cell(rowIndex,colIndex).ctype
#ctype的类型 0:empty,1:string, 2:number, 3:date, 4: boolean, 5: error
print type

if __name__=="__main__":
obj = excelUse()
obj.getRow(0)
obj.getCol(0)
obj.getCell(0,0)
obj.getNumber()

 

posted @ 2018-07-25 17:03  裴敏儿  阅读(1481)  评论(0编辑  收藏  举报