专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

xlrd如何根据列名提取数据_python

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/9 2:32:55       共计:3583 浏览

xlrd如何根据列名提取数据?

、安装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) #转成s

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:程序员都遇到过哪些误解_python | ·下一条:有人学python一天就放弃的吗_python

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有