Ptyhon xlrd常用函数用法介绍

一、安装xlrd模块

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

   2、直接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)

   4、常用的函数

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

        1)获取book中一个工作表

        table = data.sheets()[0]          #通过索引顺序获取
        table = data.sheet_by_index(sheet_indx)) #通过索引顺序获取

        table = data.sheet_by_name(sheet_name)#通过名称获取

        以上三个函数都会返回一个xlrd.sheet.Sheet()对象

 

扫描二维码关注公众号,回复: 3762584 查看本文章

        names = data.sheet_names()    #返回book中所有工作表的名字

        data.sheet_loaded(sheet_name or indx)   # 检查某个sheet是否导入完毕

 

        2)行的操作

         nrows = table.nrows  #获取该sheet中的有效行数

         table.row(rowx)  #返回由该行中所有的单元格对象组成的列表

         table.row_slice(rowx)  #返回由该列中所有的单元格对象组成的列表

         table.row_types(rowx, start_colx=0, end_colx=None)    #返回由该行中所有单元格的数据类型组成的列表

         table.row_values(rowx, start_colx=0, end_colx=None)   #返回由该行中所有单元格的数据组成的列表

         table.row_len(rowx) #返回该列的有效单元格长度

 

        3)列(colnum)的操作

         ncols = table.ncols   #获取列表的有效列数

         table.col(colx, start_rowx=0, end_rowx=None)  #返回由该列中所有的单元格对象组成的列表

         table.col_slice(colx, start_rowx=0, end_rowx=None)  #返回由该列中所有的单元格对象组成的列表

         table.col_types(colx, start_rowx=0, end_rowx=None)    #返回由该列中所有单元格的数据类型组成的列表

         table.col_values(colx, start_rowx=0, end_rowx=None)   #返回由该列中所有单元格的数据组成的列表

         4)单元格的操作

         table.cell(rowx,colx)   #返回单元格对象

         table.cell_type(rowx,colx)    #返回单元格中的数据类型

         table.cell_value(rowx,colx)   #返回单元格中的数据

         table.cell_xf_index(rowx, colx)   # 暂时还没有搞懂

 

     5、自己二次封装部分函数

class ExcelRead:
    def __init__(self,excelpath):
        '''打开指定的excel文件'''
        self.excelread=xlrd.open_workbook(excelpath)

    def get_AllSheets(self):
        '''获取所有的sheets'''
        sheets=self.excelread.sheet_names()
        return sheets

    def get_SheetbyName(self,sheetname):
        '''
        通过name获取指定的sheet
        :param sheetname: sheet名称
        :return: sheet
        '''
        sheet=self.excelread.sheet_by_name(sheetname)
        return sheet

    def get_nrows(self,sheetname):
        '''
        获取指定sheet的行数
        :param sheetname:sheet名称
        :return: sheet总行数
        '''
        sheet=self.get_SheetbyName(sheetname)
        rows_num=sheet.nrows
        return rows_num

    def get_ncolumns(self,sheetname):
        '''
        获取指定sheet的列数
        :param sheetname:sheet名称
        :return: sheet总列数
        '''
        sheet=self.get_SheetbyName(sheetname)
        columns_num=sheet.ncols
        return columns_num

    def get_value(self,sheetname,row,col):
        '''
        通过行、列定位单元格获取value
        :param row: 行
        :param col: 列
        :return: 单元格value
        '''
        sheet=self.get_SheetbyName(sheetname)
        getvalue=sheet.cell_value(row,col)
        return getvalue

    def get_row_values(self,sheetname,row):
        '''
        获取excel一行的数据
        :param sheetname:sheet名称
        :param row: 行数
        :return: 返回一行的数据
        '''
        row_value_list=[]
        sheet=self.get_SheetbyName(sheetname)
        sheet_row_len=sheet.ncols       #通过列数获取一行元素的长度
        for i in range(sheet_row_len):
            get_value=self.get_value(sheetname,row,i)
            row_value_list.append(get_value)
        return row_value_list

    def get_column_values(self,sheetname,col):
        '''
        获取excel一列的数据
        :param sheetname:sheet名称
        :param col: 列数
        :return: 返回一列的数据
        '''
        col_value_list=[]
        sheet=self.get_SheetbyName(sheetname)
        sheet_column_len=sheet.nrows    #通过行数获取一列元素的长度
        for i in range(sheet_column_len):
            get_value=self.get_value(sheetname,i,col)
            col_value_list.append(get_value)
        return col_value_list

猜你喜欢

转载自blog.csdn.net/BearStarX/article/details/81583415
今日推荐