5.通过xlrd读取xlsx文件

#encoding:utf-8

'''
目标:读取XLS文件中的内容
步骤:
1.打开已有XLS文件
2.获取sheet名称
3.获取对应sheet第一行数据
4.获取其他行数据
'''
import xlrd
'''打开文件'''

class OpenMyXLS():
    def __init__(self,filepath):
        self.filepath = filepath
        self.openxls()
        
    def openxls(self):
        xl = xlrd.open_workbook(self.filepath)
        print("所有的sheet名称:")
        sheetsName = xl.sheet_names()
        print(sheetsName)#获取所有sheet名称
        print('获取sheet数量:')
        sheetsNum = xl.nsheets
        print(sheetsNum)
        print("获取索引对应的sheet对应的名称")
        sheetName = (xl.sheet_by_index(1)).name
        print(sheetName)
        print("获取该sheet总行数")
        sheetRows = (xl.sheet_by_index(1)).nrows
        print(sheetRows)
        print("获取总列数")
        sheetCols = (xl.sheet_by_index(1)).ncols
        print(sheetCols)
        print("获取第一行所有内容")
        sheetValues = (xl.sheet_by_index(1)).row_values(0)
        print(sheetValues)
        
        findArr = []
        print("查找是否有81BOM列")
        for sheetV in sheetValues:
            if sheetV == '81BOM':
                findArr.append(sheetV)
                print(findArr)
            if '70 HSG Bin' in sheetV:
                #print(sheetV)
                findArr.append(sheetV)
                print(findArr)
            if '70 MLB Bin' in sheetV:
                #print(sheetV)
                findArr.append(sheetV)
                print(findArr)
        '''
                    获取对应列的所有数据
        '''
        print("头部名称长度")
        print(len(findArr))
        lvs = []
        lieValues=[]
        i=0       
        while i < len(findArr):
            print("获取列位置")
            indexlie = sheetValues.index(findArr[i])
            print(indexlie)
            lieValues = (xl.sheet_by_index(1)).col_values(indexlie)
            lvs.append(lieValues)
            i+=1
            lieValues = []
#         print('获取该列中所有数据')
#         lvs = []
#         lieValues1 = (xl.sheet_by_index(1)).col_values(25)
#         lvs.append(lieValues1)
#         lieValues2 = (xl.sheet_by_index(1)).col_values(28)
#         lvs.append(lieValues2)
#         print(lieValues1)
#         print(len(lieValues1))
        
        print("整合后的数据")
        print(lvs)
        print(len(lvs))
                
if __name__ == '__main__':
    filepath = '../test81.xlsx'
    oxl = OpenMyXLS(filepath)

 

posted @ 2022-03-18 13:14  种太阳  阅读(460)  评论(0编辑  收藏  举报