zoukankan      html  css  js  c++  java
  • python操作excel文件一(xlrd读取文件)

      一般做接口测试,会把参数和一些数据放入excel表中,这样就不会重新编译代码,提高效率。一般如何操作呢?接下来跟着步骤一起学习吧

      执行步骤:

      1.首先要安装 xlrd这个模块,用 pip install xlrd

      2.倒入这个模块

      3.打开一个excel文件(建一个excel的对象)

      4.获取到想要的sheet

      5.得到想要的列的内容,或者行的内容,或者具体哪个单元格里面的内容

      我有一个excel文件:3行4列,有三页,分别是sheet1,sheet2,sheet3

    代码:

    #!/usr/bin/env/python
    # -*-coding:utf-8-*-
    import xlrd

    class excelUse(object):

    #Object:得到这个对象,也就是打开xlsx文件
    Object = xlrd.open_workbook("exceldemo1.xlsx")

    def getSheetsByIndex(self,index=0):
    """
    通过索引得到
    sheet: 得到第几页(index)的内容
    :return: 返回第几页的内容
    """
    sheet = self.Object.sheet_by_index(index) #通过sheet_by_index()这个方法,得到想要的具体的某一页
    return sheet

    def getSheetsByName(self,name):
    """
    通过名字得到
    :param sheetName:得到所有的sheet,而且他的类型是一个list类型
    :return:
    """
    sheetNames = self.Object.sheet_names() #通过sheet_names()这个方法,得到所有页的名
         print "sheetnames is {0},and the type is {1}".format(sheetNames, type(sheetNames))
            sheet = self.Object.sheet_by_name(name)   #通过sheet_by_name()这个方法,传入具体的sheet名字得到具体的sheet页
    return sheet

    def getNumber(self):
    """
    获取sheet的名字,行数,列数,通过属性 name,nrows,ncols(是number+rols/cols)
    :return:
    """
    print "获取sheet的名字",self.getSheetsByIndex(0).name
    print "获取sheet的行数",self.getSheetsByIndex(0).nrows
    print "获取sheet的列数",self.getSheetsByIndex(0).ncols

    def getRow(self,index=0):
    """
    index: 第几行的内容,默认从0开始
    :param index:
    :return:
    """
    print self.getSheetsByIndex(0).row_values(index)
    print type(self.getSheetsByIndex(0).row_values(index))

    def getCol(self,index=0):
    """
    index:第几列的内容,默认从0开始
    :return:
    """
    print self.getSheetsByIndex(0).col_values(index)
    print type(self.getSheetsByIndex(0).col_values(index))

      def getCell(self,rowIndex,colIndex):
    """
    获取具体的单元格的内容
    rowIndex:第几行
    colIndex:第几列
         type:单元格数据的类型 
    :return:
    """
    print self.getSheetsByIndex(0).cell_value(rowIndex,colIndex)
    print self.getSheetsByIndex(0).cell(rowIndex,colIndex)
    #print self.getSheetsByName("sheet1").cell(rowIndex,colIndex)
    type = self.getSheetsByIndex(0).cell(rowIndex,colIndex).ctype
    #ctype的类型 0:empty,1:string, 2:number, 3:date, 4: boolean, 5: error
    print type

    if __name__=="__main__":
    obj = excelUse()
    obj.getRow(0)
    obj.getCol(0)
    obj.getCell(0,0)
    obj.getNumber()

  • 相关阅读:
    工单系统的设计与实现(4)
    java_tcp_简单示例
    java_udp编程
    mysql 锁问题 (相同索引键值或同一行或间隙锁的冲突)
    行锁与表锁详解
    BTree和B+Tree详解
    深入浅出java常量池
    MySQL三大范式和反范式
    java多线程 栅栏CyclicBarrier
    SpringBoot初始教程之Servlet、Filter、Listener配置
  • 原文地址:https://www.cnblogs.com/peiminer/p/9366990.html
Copyright © 2011-2022 走看看