首页 >

xlrd如何根据列名提取数据? – 网络|

20兆的带宽怎么设置,vc域名怎么样,三星s6g9200怎么越狱20兆的带宽怎么设置,vc域名怎么样,三星s6g9200怎么越狱xlrd如何根据列名提取数据? - 网络|xlrd如何根据列名提取数据

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

pipinstallxlrd

二、使用xlrd读取excel数据

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

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

defreadExcelDataByName(fileName,sheetName):

table=None

errorMsg=None

try:

data=xlrd.open_workbook(fileName)

table=data.sheet_by_name(sheetName)

exceptException,msg:

errorMsg=msg9returntable,errorMsg

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

defreadExcelDataByIndex(fileName,sheetIndex):

table=None

errorMsg=""

try:

data=xlrd.open_workbook(fileName)

table=data.sheet_by_index(sheetIndex)

exceptException,msg:

errorMsg=msg

returntable,errorMsg

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

defgetColumnIndex(table,columnName):

columnIndex=None3

foriinrange(table.ncols):5

if(table.cell_value(0,i)==columnName):

columnIndex=i

break

returncolumnIndex

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

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

#!/usr/bin/python

#coding=utf-8

__author__='Paul'

importxlrd

importchardet

importtraceback

defgetColumnIndex(table,columnName):

columnIndex=None

#printtable

foriinrange(table.ncols):

#printcolumnName

#printtable.cell_value(0,i)

if(table.cell_value(0,i)==columnName):

columnIndex=i

break

returncolumnIndex

defreadExcelDataByName(fileName,sheetName):

#printfileName

table=None

errorMsg=""

try:

data=xlrd.open_workbook(fileName)

table=data.sheet_by_name(sheetName)

exceptException,msg:

errorMsg=msg

returntable,errorMsg

defreadExcelDataByIndex(fileName,sheetIndex):

table=None

errorMsg=""

try:

data=xlrd.open_workbook(fileName)

table=data.sheet_by_index(sheetIndex)

exceptException,msg:

errorMsg=msg

returntable,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'))

printu'测试用例ID为:%s'%(testcase_id)

printu'配置信息为:%s'%(app_config)

得出结果如下:

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

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

ifisinstance(inputValue,float):#判断读取到的值是否为float

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

inputValue=int(inputValue)

inputValue=str(inputValue)#转成s


xlrd如何根据列名提取数据? - 网络|
  • python写游戏脚本的适用方法和经验分享 |python画图后关不掉
  • python写游戏脚本的适用方法和经验分享 |python画图后关不掉 | python写游戏脚本的适用方法和经验分享 |python画图后关不掉 ...

    xlrd如何根据列名提取数据? - 网络|
  • Python+跑密码包,轻松破解任何密码 |python宽度优先八皇后
  • Python+跑密码包,轻松破解任何密码 |python宽度优先八皇后 | Python+跑密码包,轻松破解任何密码 |python宽度优先八皇后 ...

    xlrd如何根据列名提取数据? - 网络|
  • 如何使用Python编写炉石传说自动化脚本? |python 采集双色球
  • 如何使用Python编写炉石传说自动化脚本? |python 采集双色球 | 如何使用Python编写炉石传说自动化脚本? |python 采集双色球 ...