python读取EXCEL xlrd 模块

1. 安装xlrd

方法:通过pip  或者 pycharm IDE

2. 使用

2.1 打开Excel表

导入模块:import xlrd

打开工作簿:book = xlrd.open_workbook('file.xls')

获取工作表3种方法:

sheet = book.sheet()[0]  #通过索引顺序获取工作表

sheet = book.sheet_by_index(0)  #通过索引顺序获取工作表

sheet = book.sheet_by_name('file.xls')   #通过名称获取工作表

遍历每一个sheet,输出sheet名字

for sheet in sheets:

       print(sheet.name)

2.2 获取整行和整列的值(数组)

sheet.row_values(i)    #获取某行值

sheet.col_values(i)    #获取某列值

2.3 获取行数和列数

nrows = sheet.nrows   #行数

ncols = sheet.ncols   #列数

2.4 获取某列或者行数据

for i in range(nrows)

         print sheet.row_values(i)

2.5获取单元格数据

for sheet in sheets:

             print sheet.cell_value(0,0)   #获取单元格值

             print sheet.cell_type(4,6)     #获取单元格类型

             print sheet.cell(0,0)    #获取单元格对象

代码:

import xlrd

class ReaderExcel(object):
    def __init__(self,file,sheet):
        self.file = file
        self.sheet = sheet
        self.s = None

    #打开工作簿
    def open_excel(self):
        try:
            book = xlrd.open_workbook(self.file)
            return book
        except Exception:
            print(u'文件路径不存在')

    #读取excel数据
    def read_excel(self):
        book = self.open_excel()
        #根据sheet值确定访问sheet方法
        if type(self.sheet) not in [int,str]:
            print(u'请输入<type int>or <type str>,not{0}'.format(type(self.sheet)))
        elif type(self.sheet)== int:
            self.s = book.sheet_by_index(self.sheet)
        else:
            self.s = book.sheet_by_name(self.sheet)
        title = self.s.row_values(0)  #获取标题行值
        rows = self.s.nrows #总行数
        list = []
        for i in range(1,rows): #循环行
            rowvalues = self.s.row_values(i)
            if rows:
                app = {}
                for j in range(0,len(title)): #循环列
                    app[title[j]] = rowvalues[j]   #将每一列的每一个值赋值给标题,组成字典
                list.append(app)    #字典组织列表
        #print(list)
        return list

    #打印某个值
    def print_data(self):
        for d in self.read_excel():
            print(d)
            print(d['name'])


if __name__ == '__main__':
    excel = ReaderExcel(r'F:\Python\learn\read_excel.xlsx',0)
    #excel.read_excel()
    excel.print_data()

运行结果:


猜你喜欢

转载自blog.csdn.net/hou_angela/article/details/80494665