5.通過xlrd讀取xlsx檔案
阿新 • • 發佈:2022-03-18
#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)