xlrd模塊學習

 

 python經常使用模塊目錄html

 

1)# 打開Excel文件讀取數據
import xlrd
workbook = xlrd.open_workbook('mcw_test.xlsx')
print(workbook)
----------------結果:
<xlrd.book.Book object at 0x02320410>
2) 打印全部的sheet列出全部的sheet名字
import xlrd
workbook = xlrd.open_workbook('mcw_test.xlsx')
print(workbook.sheet_names()) -----------------結果:
['魔降風雲變人名單', 'Sheet2', 'Sheet3']
3)根據sheet索引或者名稱獲取sheet內容
import xlrd
workbook = xlrd.open_workbook('mcw_test.xlsx')
Data_sheet = workbook.sheets()[0]
print(Data_sheet)
-----------------結果:
<xlrd.sheet.Sheet object at 0x02947730>
4)根據sheet索引或者名稱獲取sheet內容
import xlrd
workbook = xlrd.open_workbook('mcw_test.xlsx')
Data_sheet = workbook.sheet_by_name(u'魔降風雲變人名單')
print(Data_sheet)
----------------結果:
<xlrd.sheet.Sheet object at 0x02947730>
5)獲取sheet名稱、行數和列數
import xlrd
workbook = xlrd.open_workbook('mcw_test.xlsx')
Data_sheet = workbook.sheet_by_name(u'魔降風雲變人名單')
rows = Data_sheet.row_values(0) #獲取第一行內容
cols = Data_sheet.col_values(1) #獲取第二列內容
print(rows)
print(cols)
------------------------結果:
['姓名', '性別', '愛好', '畢業時間']
['性別', '', '', '']
6)
# 獲取單元格內容的數據類型
# 至關於在一個二維矩陣中取值
# (row,col)-->(行,列)

import xlrd
workbook = xlrd.open_workbook('mcw_test.xlsx')
Data_sheet = workbook.sheet_by_name(u'魔降風雲變人名單')
cell_A1 = Data_sheet.cell(0,0).value # 第一行第一列座標A1的單元格數據
print(cell_A1)
---------------結果:
姓名
7)
import xlrd
workbook = xlrd.open_workbook('mcw_test.xlsx')
Data_sheet = workbook.sheet_by_name(u'魔降風雲變人名單')
cell_C1 = Data_sheet.cell(0,2).value # 第一行第三列座標C1的單元格數據
print(cell_C1)
--------------------結果:
愛好
8)
import xlrd
workbook = xlrd.open_workbook('mcw_test.xlsx')
Data_sheet = workbook.sheet_by_name(u'魔降風雲變人名單')
rows = Data_sheet.row_values(0) #獲取第一行內容
cols = Data_sheet.col_values(1) #獲取第二列內容
cell_B1 = Data_sheet.row(0)[1].value # 第1行第2列
cell_D2 = Data_sheet.col(3)[1].value # 第4列第2行
print(cell_B1)
print(cell_D2)
-----------------結果:
性別
2017.07.01
9# 檢查單元格的數據類型
# ctype的取值含義
# ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
import xlrd
workbook = xlrd.open_workbook('mcw_test.xlsx')
Data_sheet = workbook.sheet_by_name(u'魔降風雲變人名單')
print(Data_sheet.cell(3,0).ctype)
print(Data_sheet.cell(1,3).ctype)
--------------結果:
1
1
10# 讀取excel中單元格內容爲日期的方式
date_value = xlrd.xldate_as_tuple(Data_sheet.cell_value(4,0),workbook.datemode)
 
print(date_value) # -->(2017, 9, 6, 0, 0, 0)
 
print('%d:%d:%d' %(date_value[3:])) # 打印時間
print('%d/%02d/%02d' %(date_value[0:3])) # 打印日期

第一個工做表的名字,總行數nrows,總列數

import xlrd
workbook = xlrd.open_workbook('mcw_test.xlsx')
Data_sheet = workbook.sheets()[0]   #索引爲0的工做表sheet,即第一個工做表
print(Data_sheet.name,Data_sheet.nrows,Data_sheet.ncols)  #第一個工做表的名字,總行數nrows,總列數

--------------結果;
魔降風雲變人名單 4 4python

 

以下表,循環獲取表格全部行:

(#rows獲取到表格行數,從0到表格行數作循環。利用索引取指定索引的行的值)post

import xlrd
workbook = xlrd.open_workbook('mcw_test.xlsx')
Data_sheet = workbook.sheets()[0]   #索引爲0的工做表sheet,即第一個工做表
rows=Data_sheet.nrows
for i in range(0,rows):
    print(Data_sheet.row_values(i),type(Data_sheet.row_values(i)))
------------------結果:
['id', '姓名', '性別', '愛好', '畢業時間'] <class 'list'>
[2.0, '小馬過河', '', '跑步', '2017.07.01'] <class 'list'>
[5.0, '小郭吹雪', '', '睡覺', '2016.07.01'] <class 'list'>
[1.0, '櫻花小月', '', '吃飯', '2018.07.01'] <class 'list'>

#rows獲取到表格行數,從0到表格行數作循環。利用索引取指定索引的行的值

獲取表格全部列內容:

import xlrd
workbook = xlrd.open_workbook('mcw_test.xlsx')
Data_sheet = workbook.sheets()[0]   #索引爲0的工做表sheet,即第一個工做表
cols=Data_sheet.ncols #第一個工做表的名字,總行數nrows,總列數
for j in range(0,cols):
    print(Data_sheet.col_values(j))
---------------結果:
['id', 2.0, 5.0, 1.0]
['姓名', '小馬過河', '小郭吹雪', '櫻花小月']
['性別', '', '', '']
['愛好', '跑步', '睡覺', '吃飯']
['畢業時間', '2017.07.01', '2016.07.01', '2018.07.01']

#獲取小郭吹雪(未知行)的全部信息(一我的一行信息),以及單獨拿出畢業時間(能夠查看出已知列)

import xlrd
workbook = xlrd.open_workbook('mcw_test.xlsx')
Data_sheet = workbook.sheets()[0]   #索引爲0的工做表sheet,即第一個工做表「魔降風雲變人名單」
name=Data_sheet.col_values(1)  # 工做表.col_values(1)是取表格第二列「姓名」列。name單元格爲元素造成的列表,第一個值爲「姓名」,索引行爲0
for i in range(0,Data_sheet.nrows):  # Data_sheet.nrows是工做表.nrows,即這張工做表的總行數。
    if name[i]=="小郭吹雪":  #name爲第二列的列表,在列表中找到索引行爲i且列表元素爲"小郭吹雪"的值,若是找到,就有了行數
        print("%s的索引行號是:%s,也是表格第(%s)行內容"%(name[i],i,i+1)) #循環後獲得"小郭吹雪"的索引行,打印出「姓名」列的元素即「小郭吹雪」
        print("小郭吹雪的畢業時間是:%s"%Data_sheet.row(i)[4].value) #工做表.行(行索引)[列索引].value得到「小郭吹雪」的畢業時間。畢業時間索引是看錶結構已知的
        break  #找到「小郭吹雪」後,就中止循環。節省計算資源
----------------------------結果:
小郭吹雪的索引行號是:2,也是表格第(3)行內容
小郭吹雪的畢業時間是:2016.07.01


#綜上:想要找到表格某列的一個元素,求這個元素的本行其它內容:找到表格總行數,對本列的元素循環,能夠找到這個元素所在的行數。這樣就能夠用代碼求得本行其它列的內容了。
       

import xlrd
workbook = xlrd.open_workbook('mcw_test.xlsx')
Data_sheet = workbook.sheets()[0]
name=Data_sheet.col_values(1)
for i in range(0,Data_sheet.nrows):
if name[i]=="小郭吹雪":
print("%s的索引行號是:%s,也是表格第(%s)行內容"%(name[i],i,i+1))
print("小郭吹雪的畢業時間是:%s"%Data_sheet.row(i)[4].value)
break

 

 

 

參考連接:
1)https://blog.csdn.net/qq_41185868/article/details/80469355spa

相關文章
相關標籤/搜索