Python读取Excel数据并根据列名取值

您所在的位置:网站首页 excel获取列名 Python读取Excel数据并根据列名取值

Python读取Excel数据并根据列名取值

2023-07-24 22:16| 来源: 网络整理| 查看: 265

一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了。

最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用过程中读取excel数据相关操作。

一、安装xlrd库

  可以下载xlrd库包到本地安装,也可以通过pip命令安装,这里我选择pip命令:

  pip install xlrd

二、使用xlrd读取excel数据

  具体详细的操作可以参考xlrd库操作说明文档,以下是两种读取excel数据的方法:

  1、根据Excel中sheet名称读取数据:    

def readExcelDataByName(fileName, sheetName): table = None errorMsg = None try: data = xlrd.open_workbook(fileName) table = data.sheet_by_name(sheetName) except Exception, msg: errorMsg = msg 9 return table, errorMsg

2、根据Excel中sheet的序号获取:

def readExcelDataByIndex(fileName, sheetIndex): table = None errorMsg = "" try: data = xlrd.open_workbook(fileName) table = data.sheet_by_index(sheetIndex) except Exception, msg: errorMsg = msg return table, errorMsg

3、根据列名获取相应序号,由于有时读取excel中列数据时,需要通过列头名称获取相应的列中的值,所以写了下面这个返回列名所在表格中的index。然后就可以直接通过table.cell_value(i, getColumnIndex(table,'列名'))获取列的值。

def getColumnIndex(table, columnName):     columnIndex = None 3     for i in range(table.ncols): 5         if(table.cell_value(0, i) == columnName):             columnIndex = i             break     return columnIndex

下面加入需要读取如下excel表格中的数据,在读取数据时直接根据列名去获取相应的值。

根据列名读取相应的值,代码如下:

#!/usr/bin/python # coding=utf-8 __author__ = 'Paul' import xlrd import chardet import traceback def getColumnIndex(table, columnName): columnIndex = None #print table for i in range(table.ncols): #print columnName #print table.cell_value(0, i) if(table.cell_value(0, i) == columnName): columnIndex = i break return columnIndex def readExcelDataByName(fileName, sheetName): #print fileName table = None errorMsg = "" try: data = xlrd.open_workbook(fileName) table = data.sheet_by_name(sheetName) except Exception, msg: errorMsg = msg return table, errorMsg def readExcelDataByIndex(fileName, sheetIndex): table = None errorMsg = "" try: data = xlrd.open_workbook(fileName) table = data.sheet_by_index(sheetIndex) except Exception, msg: errorMsg = msg return table, errorMsg if __name__ == '__main__': #example xlsfile= 'F:/test_AutoTesting/TestCase/RunList.xlsx' table = readExcelDataByName(xlsfile, 'Sheet1')[0] #获取第一行的值 testcase_id = table.cell_value(1, getColumnIndex(table,'TestCaseID')) app_config = table.cell_value(1, getColumnIndex(table,'APPConfig')) print u'测试用例ID为:%s'%(testcase_id) print u'配置信息为:%s'%(app_config)

得出结果如下:

  4、读取excel中的文本或数值转换成了float的问题

    有时Excel中的值为20,但读取出来的值却变成了20.0,这与我们想要的不大一致,特别是做UI自动化测试过程中需要下拉选择值时就完全选不出想要的选项了。目前我想到的是通过下面的语句来处理:

if isinstance(inputValue,float): #判断读取到的值是否为float if inputValue==int(inputValue): #判断读取到的值与转成int后的值是否相等,如果相等则转成int inputValue = int(inputValue) inputValue = str(inputValue) #转成str



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3