Python学习笔记:读取Excel的xlrd模块

一、安装xlrd

  可以使用命令行安装也可使用pycharm进行安装 

  表示xlrd库已经安装成功,安装成功后,我们就可以导入使用了。

二、xlrd说明

  (1、单元格常用的数据类型包括

    0empty(空的)

    1string(text)

    2number

    3date

    4boolean

    5error

    6blank(空白表格)

  (2xlrd返回的类型

    1、在操作行和列时,返回excel数据时,已列表格式返回数据;

    2、在统计行和列时,返回数字

    3、单元格的操作,会根据不同的操作,返回的类型不同

  如:sheet.cell(rowx,colx)---返回单元格对象(包含数据类型和数据)

三、xlrd库的使用

1、定义使用xlrd的相关功能

 

 1 # _*_ coding:utf-8 _*_
 2 
 3 import xlrd,os
 4 
 5 #封装xlrd,fac为拼接测试用例的路径
 6 def fcaseexcel(fac,sheetindex=0):
 7     try:
 8         caseurl = r"D:\shitou\pythonscript\ManageAPI\TestCase\\" + fac + ".xlsx"
 9         assert os.path.isfile(caseurl),"文件不存在"
10 
11         #打开excel文件
12         caselist=xlrd.open_workbook(caseurl)
13         # 获取sheet名称
14         sheetname = caselist.sheet_names()
15 
16         # 获取sheet
17         casesheet = caselist.sheet_by_index(sheetindex)
18         return casesheet
19     except Exception as e:
20         print(str(e))
21 
22 #封装xlrd中行的操作
23 def fcaserows(casesheet,row=-1):
24     try:
25         caserows=[]
26         #获取sheet的行数
27         rows=casesheet.nrows
28 
29         #获取每行的数据
30         if row==-1:
31             for crow in range(rows):
32                 caserows.append(casesheet.row_values(crow))
33         else:
34             caserows=casesheet.row_values(row)
35         return caserows
36     except Exception as  e:
37         raise (str(e))
38 
39 def fcasecols(casesheet,col=-1):
40     try:
41         casecols=[]
42         #获取sheet的列数
43         cols=casesheet.ncols
44 
45         if col==-1:
46             #获取每列的数据
47             for ccol in range(cols):
48                 casecols.append(casesheet.col_values(ccol))
49         else:
50             casecols=casesheet.col_values(col)
51         return casecols
52     except Exception as  e:
53         raise (str(e))
54 
55 def fcasecell(casesheet,row=-1,col=-1):
56     try:
57         casecell=[]
58         if row==-1:
59             if col==-1:
60                 #获取每个单元格的数据
61                 for crow in range(casesheet.nrows):
62                     for ccol in range(casesheet.ncols):
63                         casecell.append(casesheet.col_values(crow,ccol))
64             else:
65                 #获取指定列的所有数据
66                 for crow in range(casesheet.nrows):
67                     casecell.append(casesheet.col_values(crow,col))
68         else:
69             if col==0:
70                 #获取指定行的数据
71                 for ccol in range(casesheet.ncols):
72                     casecell.append(casesheet.col_values(row,ccol))
73             else:
74                 #获取指定单元格的数据
75                 casecell=casesheet.col_values(row,col)
76         return casecell
77     except Exception as  e:
78         raise (str(e))

 

2、调用函数

 

1 from MySQL_Connect import DbMysql   
2  #指定测试用例的文件名
3     casesheet=fcaseexcel(casename)
4 
5     # 获取测试用例,在casenum列
6     caseapi=fcasecols(casesheet,0)
7     wishresult=fcasecols(casesheet, 3)
8     case = fcasecols(casesheet, 2)
9     rcasename=fcasecols(casesheet,1)

 

3、测试用例excel文档如下:

接口

测试用例名称

测试用例

预期

登录

无参数

{}

参数错误,请参考API接口

登录

正确namepasswd

{"name":"admin","word":"admin123"}

登录成功

 

posted @ 2018-12-05 18:16  飘着的石头  阅读(1027)  评论(0编辑  收藏  举报