当前位置:   article > 正文

python----xlrd模块_xlrd读取数据的原理

xlrd读取数据的原理

那我就一下面积个问题对xlrd模块进行学习一下:

1.什么是xlrd模块?

2.为什么使用xlrd模块?

3.怎样使用xlrd模块?

1.什么是xlrd模块?

  ♦python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。

今天就先来说一下xlrd模块:

一、安装xlrd模块

  ♦ 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。

  ♦或者在cmd窗口  pip install  xlrd

二、使用介绍

 1、常用单元格中的数据类型

     ♦ 0. empty(空的),1 string(text), 2 number, 3 date, 4 boolean, 5 error, 6 blank(空白表格)

 2、导入模块

 import xlrd

  3、打开Excel文件读取数据

data = xlrd.open_workbook(filename)#文件名以及路径,如果路径或者文件名有中文给前面加一个r拜师原生字符。

 4、常用的函数

       ♦ excel中最重要的方法就是book和sheet的操作

      1)获取book中一个工作表

复制代码

  1. table = data.sheets()[0] #通过索引顺序获取
  2. table = data.sheet_by_index(sheet_indx)) #通过索引顺序获取
  3. table = data.sheet_by_name(sheet_name)#通过名称获取
  4. 以上三个函数都会返回一个xlrd.sheet.Sheet()对象
  5. names = data.sheet_names() #返回book中所有工作表的名字
  6. data.sheet_loaded(sheet_name or indx) # 检查某个sheet是否导入完毕

复制代码

如:

 

        2)行的操作

复制代码

  1. nrows = table.nrows #获取该sheet中的有效行数
  2. table.row(rowx) #返回由该行中所有的单元格对象组成的列表
  3. table.row_slice(rowx) #返回由该列中所有的单元格对象组成的列表
  4. table.row_types(rowx, start_colx=0, end_colx=None) #返回由该行中所有单元格的数据类型组成的列表
  5. table.row_values(rowx, start_colx=0, end_colx=None) #返回由该行中所有单元格的数据组成的列表
  6. table.row_len(rowx) #返回该列的有效单元格长度

复制代码

 

       3)列(colnum)的操作

复制代码

  1. ncols = table.ncols #获取列表的有效列数
  2. table.col(colx, start_rowx=0, end_rowx=None) #返回由该列中所有的单元格对象组成的列表
  3. table.col_slice(colx, start_rowx=0, end_rowx=None) #返回由该列中所有的单元格对象组成的列表
  4. table.col_types(colx, start_rowx=0, end_rowx=None) #返回由该列中所有单元格的数据类型组成的列表
  5. table.col_values(colx, start_rowx=0, end_rowx=None) #返回由该列中所有单元格的数据组成的列表

复制代码

如:

 

      4)单元格的操作  

复制代码

  1. table.cell(rowx,colx) #返回单元格对象
  2. table.cell_type(rowx,colx) #返回单元格中的数据类型
  3. table.cell_value(rowx,colx) #返回单元格中的数据
  4. table.cell_xf_index(rowx, colx) # 暂时还没有搞懂

复制代码

♦单元格:单元格是表格中行与列的交叉部分,它是组成表格的最小单位,可拆分或者合并。单个数据的输入和修改都是在单元格中进行的

如:

注意:注意作用域问题,之前获取的sheet之后,都在获取到这个sheet值后,在进行,行和列以及单元格的操作。

5)

5、读取表格某个单元格的值(table.cell(i,j).value)

nrow=table.nrows#读取Excel表格的行数
ncol=table.ncols#读取表格的列数
#print nrow,ncol
testcase=[] #筛选出要进行测试的用例
for i in range(nrow):
    if table.cell(i,1).value == u‘是‘:
        testcase.append(table.cell(i,0).value) #table.cell(i,0).value 表示第i+1行第1行中的值

 6、使用行、列索引读取

print table.row(0)[1].value #打印第一行,第2列的值

print table.col(0)[1].value #打印一列,第2行的值

♦ python解决open()函数、xlrd.open_workbook()函数文件名包含中文,sheet名包含中文报错的问题

 问题现象: 

  ♦1、使用open()函数、xlrd.open_workbook()函数打开文件,文件名若包含中文,会报错找不到这个文件或目录。 

  ♦2、获取sheet时若包含中文,也会报错。

复制代码

  1. #打开文件
  2. file = open(filename,'rb')
  3. #打开excel文件
  4. workbook = xlrd.open_workbook(filename)
  5. #获取sheet
  6. sheet = workbook.sheet_by_name(sheetname)

复制代码

解决方案:

  ♦对参数进行转码即可。如:

filename = filename.decode('utf-8')

  ♦也试过unicode函数,不过,在ride中运行时出现了报错,所以不赞成使用。

filename = unicode(filename,'utf-8')

 

2.为什么使用xlrd模块?

  ♦在UI自动化或者接口自动化中数据维护是一个核心,所以此模块非常实用。

参考:https://www.cnblogs.com/insane-Mr-Li/p/9092619.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/847873
推荐阅读
相关标签
  

闽ICP备14008679号