zoukankan      html  css  js  c++  java
  • Python 读取Excel文件内容【转载】

    import xlrd
    
    
    class ReadExcel:
        def __init__(self, file_path):
            try:
                self.book = xlrd.open_workbook(file_path)
            except:
                print('No File %s' % file_path)
            self.sheet_names = self.book.sheet_names()
            self.sheet_num = self.book.nsheets
            self.sheet = self.book.sheet_by_index(0)
            self.row_num = self.sheet.nrows
            self.col_num = self.sheet.ncols
    
        def read_sheet_name(self, sheet_name):
            try:
                self.sheet = self.book.sheet_by_name(sheet_name)
            except:
                print("No Sheet %s" % sheet_name)
            # 获取行数列数
            self.row_num = self.sheet.nrows
            self.col_num = self.sheet.ncols
    
        def read_sheet_index(self, sheet_index):
            try:
                self.sheet = self.book.sheet_by_index(sheet_index)
            except:
                print("No Sheet Index %s" % sheet_index)
            # 获取行数列数
            self.row_num = self.sheet.nrows
            self.col_num = self.sheet.ncols
    
        def get_sheet_names(self):
            return self.sheet_names
    
        # 读取单元格内容
        def get_cell_value(self, row, col):
            return self.sheet.cell_value(row, col)
    
        # 读取某行数据
        def get_row_data(self, row):
            return self.sheet.row_values(row)
    
        # 读取某列数据
        def get_col_data(self, col):
            return self.sheet.col_values(col)
    
        # 读取所有行数据
        def get_sheet_rows_data(self):
            data = []
            for i in range(0, self.row_num):
                row_value_list = self.sheet.row_values(i)
                data.append(row_value_list)
            return data
    
        # 读取所有列数据
        def get_sheet_cols_data(self):
            data = []
            for i in range(0, self.col_num):
                col_value_list = self.sheet.col_values(i)
                data.append(col_value_list)
            return data
    
        # 读取所有sheet行数据
        def get_file_rows_data(self):
            data = []
            for name in self.sheet_names:
                self.read_sheet_name(name)
                sheet_data = self.get_sheet_rows_data()
                sheet_data.append(['SheetName', name])
                data.append(sheet_data)
            return data
    
        # 读取所有sheet列数据
        def get_file_cols_data(self):
            data = []
            for i in range(0, self.sheet_num):
                self.read_sheet_index(i)
                data.append(self.get_sheet_cols_data())
            return data
    
        # 读取指定列的行数据
        def get_choose_rows_data(self, start_index, end_index):
            data = []
            for i in range(1, self.row_num):
                row_value_list = self.sheet.row_values(i, start_index, end_index)
                data.append(row_value_list)
            return data
    
        # 读取指定列关键字的行数据
        def get_keys_rows_data(self, keys):
            data = []
            keys_value = self.sheet.row_values(0)
            key_indexes = []
            for key_index in range(0, len(keys)):
                for index in range(0, len(keys_value)):
                    if keys_value[index] == keys[key_index]:
                        key_indexes.append(index)
            for j in range(1, self.row_num):
                row_value_list = []
                for i in range(0, len(key_indexes)):
                    row_value_list.append(self.sheet.cell_value(j, key_indexes[i]))
                data.append(row_value_list)
            return data
    ————————————————
    版权声明:本文为CSDN博主「aiee」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/sinat_34209942/article/details/86068777
  • 相关阅读:
    APP测试之找密码
    测试理论
    LR性能测试
    Linux 操作系统常用命令
    C#后台HttpWebRequest代码调用WebService
    Python3在Windows下安装虚拟环境
    oracle使用rownum进行分页查询
    oracle over结合row_number分区进行数据去重处理
    Oracle实现主键自动增长
    Asp.net WebApi调用
  • 原文地址:https://www.cnblogs.com/dalishusheng/p/13253884.html
Copyright © 2011-2022 走看看