1. 程式人生 > 其它 >5.通過xlrd讀取xlsx檔案

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)