轉載 https://www.jianshu.com/p/f2c9dff344c6
pip install xlrd
# -*- coding:utf-8 -*- import xlrd """ 打開excel表格""" workbook = xlrd.open_workbook("register.xls") print(workbook)#<xlrd.book.Book object at 0x0000016B715F68E0> """ 獲取所有sheet名稱""" sheet_names = workbook.sheet_names() print(sheet_names)#['Sheet1', 'Sheet2', 'Sheet3', 'Sheet4'] """ 獲取所有或某個sheet對象""" # 獲取所有的sheet對象 sheets_object = workbook.sheets() print(sheets_object) #[Sheet 0:<Sheet1>, Sheet 1:<Sheet2>, Sheet 2:<Sheet3>, Sheet 3:<Sheet4>] # 通過index獲取第一個sheet對象 sheet1_object = workbook.sheet_by_index(0) print(sheet1_object) #Sheet 0:<Sheet1> # 通過name獲取第一個 name 對象 sheet1_name = workbook.sheet_by_name("Sheet1") #單個的是sheet_by_name 不加 s print(sheet1_name) #Sheet 0:<Sheet1> """ 判斷某個sheet是否已導入""" # 通過index判斷sheet1是否導入 sheet_is_load = workbook.sheet_loaded(sheet_name_or_index=2) print(sheet_is_load) #True # 通過 sheet名稱判斷sheet1是否導入 sheet1_is_load = workbook.sheet_loaded(sheet_name_or_index="Sheet1") print(sheet1_is_load) #True """對sheet 對象中執行操作 如有效行數、某行從n1到n2的數據、某行的單元和類型、某行的類型...""" #獲取sheet1中的有效行數 # sheet1_object = workbook.sheet_by_index(0) sheet1_object = workbook.sheet_by_name("Sheet1") nrows = sheet1_object.nrows print(nrows) #15 #獲取Sheet1中第3行數據 all_row_values = sheet1_object.row_values(3) print(all_row_values) #獲取sheet1中第三行的單元 row_slice = sheet1_object.row_slice(rowx=2) print(row_slice) #[text:'s3', text:'s4', text:'s5', text:'s6', text:'s7'] #獲取sheet1中第三行的單元類型 row_type = sheet1_object.row_types(rowx=3) print(row_type) #array('B', [1, 1, 1, 1, 1]) #獲取sheet1中的第三行的長度 row_len = sheet1_object.row_len(rowx=3) print(row_len) #5 #獲取sheet1所有行的生成器 rows_all = sheet1_object.get_rows() print(rows_all) #<generator object Sheet.get_rows.<locals>.<genexpr> at 0x000001F04E084E40> """對sheet對象中的列執行操作""" #獲取sheet1中的有效列數 ncols = sheet1_object.ncols print(ncols) #5 #獲取sheet1中第一 colx+1列的數據 cols_valus = sheet1_object.col_values(colx=1) #貌似只能讀取第一列的值 print(cols_valus) #['ssssss3', 's4', 's5', 's6', 's7', 's8', 's9', 's10', 's11', 's12', 's13', 's14', 's15', 's16', 's17'] cols_values1 = sheet1_object.col_values(1,1,3) #第一個參數表示(行,開始位置,結束位置) print(cols_values1) #['s3', 's4'] #獲取sheet1中第2列的單元類型 cols2_type = sheet1_object.col_types(2) print(cols2_type) #[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1] """對sheet對象中的單元進行操作""" #獲取sheet1中的rowx+1行,第cols+1列的單元對象 cel1_info = sheet1_object.cell(rowx=1,colx=2) print(cel1_info) #text:'s4' #獲取sheet1中第rowx+1行,第colx+1列的單元值 cel1_value = sheet1_object.cell_value(rowx=1,colx=2) print(cel1_value) #s4 # 獲取sheet1中第rowx+1行,第colx+1列的單元類型值 rowx1_colx1 = sheet1_object.cell_type(rowx=1,colx=2) print(rowx1_colx1) #1 sheet4_path = xlrd.open_workbook("register.xls") sheet_all_name = sheet4_path.sheet_names() sheet4_table = sheet4_path.sheet_by_index(3) print(sheet_all_name) print(sheet4_table) 讀取sheet4 讀取第二行, 讀取第二列 sheet4_for = sheet4_table.nrows sheet4_for2 = sheet4_table.ncols print("====") print(sheet4_for) print(sheet4_for2)