xlrd 讀取excle 行列所有值


轉載  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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM