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

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

一、安装xlrd库

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

pip install xlrd

二、使用xlrd读取excel数据

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

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

1 defreadExcelDataByName(fileName, sheetName):2 table =None3 errorMsg =None4 try:5 data =xlrd.open_workbook(fileName)6 table =data.sheet_by_name(sheetName)7 exceptException, msg:8 errorMsg =msg9 return table, errorMsg

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

1 defreadExcelDataByIndex(fileName, sheetIndex):2 table =None3 errorMsg = ""

4 try:5 data =xlrd.open_workbook(fileName)6 table =data.sheet_by_index(sheetIndex)7 exceptException, msg:8 errorMsg =msg9 return table, errorMsg

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

1 defgetColumnIndex(table, columnName):2 columnIndex =None3

3 for i inrange(table.ncols):5

4 if(table.cell_value(0, i) ==columnName):5 columnIndex =i6 break

7 return columnIndex

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

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

1 #!/usr/bin/python

2 #coding=utf-8

3 __author__ = 'Paul'

4 importxlrd5 importchardet6 importtraceback7 defgetColumnIndex(table, columnName):8 columnIndex =None9 #print table

10 for i inrange(table.ncols):11 #print columnName

12 #print table.cell_value(0, i)

13 if(table.cell_value(0, i) ==columnName):14 columnIndex =i15 break

16 returncolumnIndex17 defreadExcelDataByName(fileName, sheetName):18 #print fileName

19 table =None20 errorMsg = ""

21 try:22 data =xlrd.open_workbook(fileName)23 table =data.sheet_by_name(sheetName)24 exceptException, msg:25 errorMsg =msg26 returntable, errorMsg27 defreadExcelDataByIndex(fileName, sheetIndex):28 table =None29 errorMsg = ""

30 try:31 data =xlrd.open_workbook(fileName)32 table =data.sheet_by_index(sheetIndex)33 exceptException, msg:34 errorMsg =msg35 returntable, errorMsg36 if __name__ == '__main__':37 #example

38 xlsfile= 'F:/test_AutoTesting/TestCase/RunList.xlsx'

39 table = readExcelDataByName(xlsfile, 'Sheet1')[0]40 #获取第一行的值

41 testcase_id = table.cell_value(1, getColumnIndex(table,'TestCaseID'))42 app_config = table.cell_value(1, getColumnIndex(table,'APPConfig'))43

44 print u'测试用例ID为:%s'%(testcase_id)45 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数据并根据列名取值相关推荐

  1. python读取表格数据_Python读取Excel数据并根据列名取值

    一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...

  2. 如何将Excel中一列内容拆分成两列?

    如何将Excel中一列内容拆分成两列? 目录 如何将Excel中一列内容拆分成两列? 1.例如:将下表中B列一月销售中计划与实际销售数量拆分成两列 2.首先在B列后插入一空白列,即选中C列鼠标右键点击 ...

  3. EXCEL 删除一列超过3小时的数据公式

    您可以使用以下公式来删除 Excel 中一列超过3小时的数据: 在要保留的数据的列旁边,插入一列,用于存储计算结果. 在新列中的第一个单元格(例如C2)中输入以下公式: =IF(A2-B2>TI ...

  4. python 发票信息提取_Python提取发票内容保存到Excel.md

    Python提取PDF发票内容保存到Excel --- 摘要:这篇文章介绍如何把发票内容提取出来保存到Excel中.文章分为两个部分,第一部分程序用法,第二部分介绍代码. --- 作者:yooongc ...

  5. 用python将txt文件中的内容导入到excel文件中

    背景 日志文件中的内容不方便阅读统计,需要用excel表格的形式显示出来 日志文件内容如下: info***LCAM_SC.DM_RP_DIS_DEVICE_TEMP*1*1*0*0*0*0*N*Y* ...

  6. python提取word表格里的内容_python读取word表格 python中如何将word表格内的内容进行替换...

    python如何获取word文件中某个关键字之后的表格一片春愁待酒浇.江上舟摇,楼上帘招.秋娘度与泰娘娇.风又飘飘,雨又萧萧.何日归家洗客袍?银字笙调,心字香烧.流光容易把人抛.红了樱桃,绿了芭蕉. ...

  7. python导入excel表格给列命名_python-操作Excel表格

    那我就一下面积个问题对xlrd模块进行学习一下: 1.什么是xlrd模块? 2.为什么使用xlrd模块? 3.怎样使用xlrd模块? 1.什么是xlrd模块? ♦python操作excel主要用到xl ...

  8. python对excel某一列去重-python中怎么对dataframe列去重

    python中对已经生成的Series,怎样组合成DataFrame 如 a = Series([1,2,3]) b = Series([2,3,4]) 怎样将a b组合成一个DataFzip函数接受 ...

  9. python课程将主要介绍哪些内容-Python课程详细介绍

    渡课 Python 课程开课啦,学Python就来渡课IT 模块一:Python语言部分 课程介绍 介绍Python的诞生,Python有什么独特的特点,它适合用在哪些地方,不适合用在哪些地方,以及P ...

最新文章

  1. shell example01
  2. [Linux]history 显示命令执行的时间
  3. BZOJ3336: Uva10572 Black and White(插头Dp)
  4. MFC复选框CheckBox使用 ++
  5. mysql 大写 小写_MySQL大小写问题
  6. 什么是套接字?Socket基本介绍
  7. Paragon NTFS Mac官网版的下载安装与激活教程分享
  8. Kubernetes 小白学习笔记(23)--kubernetes的运维-管理Pod
  9. Qt + DbgView : 将qDebug输出到DbgView或终端
  10. 安装thrift遇到Error: libcrypto required
  11. 文件上传注入攻击 ——合天网安实验室学习笔记
  12. mysql表结构设计工具_表结构设计器(EZDML)
  13. discuz 模板php代码,自定义HTML模板DIY支持PHP代码解析
  14. 市场营销策划书大纲怎么写
  15. 四咪唑基四苯乙烯,四苯基吡嗪(tetraphenylpyrazine,TPP)
  16. 计算机领域影响因子3.5什么水平,计算机学科SCI(包括SCI-E)影响因子排名
  17. matlab中ode指令,[转载]MATLAB中ODE的使用
  18. android版本内存多少,内存大小决定Android系统版本?
  19. GRNN神经网络学习笔记_matlab
  20. 项目开发流程(简述)

热门文章

  1. [SHOI2015]自动刷题机
  2. JAVASE8流库Stream学习总结(三)
  3. 20165328 预备作业3 Linux安装及命令
  4. Button的五种点击事件
  5. WP_Image_Editor_Imagick 漏洞临时解决方法
  6. Angular 下的 directive (part 2)
  7. 记录几个vim的命令
  8. 多波次导弹发射中的规划问题(二) 问题一解答
  9. FJUT OJ 2466 T^T的叛乱计划(组合数学)
  10. /proc/sys/vm/ 内存参数