一、安裝xlrd模塊
二、常用方法
1、導入模塊
import xlrd
2、打開文件
x1 = xlrd.open_workbook("testCase.xlsx")
3、獲取sheet
print('sheet_names:', x1.sheet_names()) # 獲取所有sheet名字 print('sheet_number:', x1.nsheets) # 獲取sheet數量 print('sheet_object:', x1.sheets()) # 獲取所有sheet對象 print('By_name:', x1.sheet_by_name("case")) # 通過sheet名查找 print('By_index:', x1.sheet_by_index(0)) # 通過索引查找
輸出:
sheet_names: ['case'] sheet_number: 1 sheet_object: [<xlrd.sheet.Sheet object at 0x10a244a58>] By_name: <xlrd.sheet.Sheet object at 0x10a244a58> By_index: <xlrd.sheet.Sheet object at 0x10a244a58>
4、獲取sheet的匯總數據
sheet1 = x1.sheet_by_name("case") print("sheet name:", sheet1.name) # get sheet name print("row num:", sheet1.nrows) # get sheet all rows number print("col num:", sheet1.ncols) # get sheet all columns number
輸出:
sheet name: case row num: 6 col num: 4
5、單元格批量讀取
行操作:
print(sheet1.row_values(0)) # 獲取第一行所有內容,合並單元格,首行顯示值,其它為空。 print(sheet1.row(0)) # 獲取單元格值類型和內容 print(sheet1.row_types(0)) # 獲取單元格數據類型
輸出:
['用戶ID', '積分', '下發原因', '部門'] [text:'用戶ID', text:'積分', text:'下發原因', text:'部門'] array('B', [1, 1, 1, 1])
列操作:
print(sheet1.row_values(0, 1, 3)) # 取第1行,第1~3列(不含第3列) print(sheet1.col_values(0, 0, 5)) # 取第1列,第0~5行(不含第5行) print(sheet1.row_slice(2, 0, 2)) # 獲取單元格值類型和內容,同sheet1.row(0) print(sheet1.row_types(1, 0, 2)) # 獲取單元格數據類型
輸出:
['積分', '下發原因'] ['用戶ID', '1611504', '1611504', '1611504', '1611504'] [text:'1611504', text:'0'] array('B', [1, 1])
6、特定單元格讀取
# 取值 print(sheet1.cell_value(1, 2)) print(sheet1.cell(1, 2).value) print(sheet1.row(1)[2].value) #取類型 print(sheet1.cell(1, 2).ctype) print(sheet1.cell_type(1, 2)) print(sheet1.row(1)[2].ctype)
輸出:
返現
返現
返現
1
1
1
7、(0,0)轉換A1
print(xlrd.cellname(0, 0)) # (0,0)轉換成A1 print(xlrd.cellnameabs(0, 0)) # (0,0)轉換成$A$1 print(xlrd.colname(30)) # 把列由數字轉換為字母表示
輸出:
A1 $A$1 AE
8、數據類型:
- 空:0
- 字符串:1
- 數字:2
- 日期:3
- 布爾:4
- error:5
# 導入模塊 import xlrd # 讀取到excel文件 data = xlrd.open_workbook("student.xlsx") # 獲取列表 table = data.sheet_by_index(0) # 獲取所有的行數 nrows = table.nrows # 獲取所有的列數 ncols = table.ncols # 獲取第一行的數據 first_row_name_list = table.row_values(0) print(first_row_name_list) # 定義一個列表保存所有行的數據 info_list = [] # 遍歷所有行 for rownum in range(1, nrows): # 獲取 row = table.row_values(rownum) # 如果row有數據 if row: info_list.append(row) print(info_list)
完