Python读取Excel数据并根据列名取值
一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了。
最近测试过程中需要用到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
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
for i in range(table.ncols):
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
Python读取Excel数据并根据列名取值的更多相关文章
- python 读取excel数据并将测试结果填入Excel
python 读取excel数据并将测试结果填入Excel 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中.过程中会生成请求回来的文本,当然还会生成一个xml文件.具体 ...
- Python读取excel 数据
1.安装xlrd 2.官网 通过官网来查看如何使用python读取Excel,python excel官网: http://www.python-excel.org/ 实例: (1)Excel内容 把 ...
- Python读取Excel数据
今天一同学给我发来一个Excel文件,让我帮他找一些信息,打开一开 8000多条数据.自己手工处理是不可能完成的的啦.作为一名程序员,当然要用程序来处理.处理生活中的问题当然是Python最为方便啦. ...
- python读取excel数据并以第一行标题加内容组成字典格式返回
excel结构如图所示: 代码: import xlrd ''' 通用获取excel数据 @:param path excel文件路径 @:param sheet_name excel文件里面shee ...
- python读取excel数据为json格式(兼容xls\xlsx)
做自动化时需要从excel读取数据: 本文实现将excel文件数据读取为json格式,方便自动化调用 读取xls文件 使用xlrd读取xls文件代码: import xlrd def read_xls ...
- python读取excel数据,并可视化展现
#-*- coding: utf-8 -*- import pandas as pda import matplotlib.pyplot as pyl import matplotlib.font_m ...
- python 读取excel数据
import xlrd book = xlrd.open_workbook(file_path)#打开文件 sheet = book.sheet_by_index(0) #获取第一个工作簿 print ...
- Python 读取Excel数据 xlrd
#导入相关模块 from xlrd import open_workbook #打开excel file = open_workbook("test.xlsx") #获取sheet ...
- python 读取excel数据插入到另外一个excel
#-*-coding:utf-8-*- import xlrd import xlwt def excel_copy(dir_from, dir_to, sheet_name): '''从一个exce ...
随机推荐
- ThinkPHP 3 的输出
一.ThinkPHP 3 的输出 (重点) a.通过 echo 等PHP原生的输出方式在页面中输出 b.通过display方法输出 想分配变量可以使用assign方法 c.修改左右定界符 休要修改配置 ...
- [ACM] POJ 2253 Frogger (最短路径变形,每条通路中的最长边的最小值)
Frogger Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 24879 Accepted: 8076 Descript ...
- Shell 脚本小试牛刀(番外) -- 捷报
捷报 捷报 捷报 捷报 捷报 捷报来袭,本系列的脚本已在Github 上开了版块, 我命名为" easy shell "(点此进入). 眼下已加入前面几期中的脚本,日后还会有很多其 ...
- 获取ubuntu 的root密码,告别sudo
刚刚开始使用ubuntu的朋友可能知道一个提权命令 sudo 如果你接触过其他的Linux系统的话,你会知道 linux系统有一个最高权限 root.一般用su root,然后输入密码就可 ...
- EF 如何code first
首先配置连接数据.sql server <connectionStrings> <add name="Model1" connectionString=" ...
- jade初学
jade是一个比ejs略难得模板.express的默认模本就是jade. 今天看了一下其实不是太难~~ 笔记: jade中使用缩进来定义HTML文档的层次结构 jade不需要关闭标签 给div添加id ...
- 空类的默认函数—— SAP电面(2)/FEI
定义一个空类 class Empty { }; 默认会生成以下几个函数 2. 拷贝构造函数 Empty(const Empty& copy) { } 3. 赋值运算符 Empty& o ...
- IntelliJ IDEA 出现Unable to execute DX 问题
最近从eclipse转移到IDEA上写代码的时候,无意间发现一个让我头疼不已的问题,message报错为 Error:Android Dex: [**] Unable to execute DX Er ...
- linux和windows的文件互传
Linux →→→Windows 1.使用secureCRT:下载文件只需在shell终端仿真器中输入命令"sz 文件名",即可利用Zmodem将文件下载到本地某目录下. 2. s ...
- python下读取excel文件
项目中要用到这个,所以记录一下. python下读取excel文件方法多种,用的是普通的xlrd插件,因为它各种版本的excel文件都可读. 首先在https://pypi.python.org/py ...