Python中的xlrd模塊使用整理
1.簡(jiǎn)述:
xlrd是讀取excel表格數(shù)據(jù);
支持 xlsx和xls 格式的excel表格;
三方模塊安裝方式:pip3 install xlrd;
模塊導(dǎo)入方式: import xlrd
2.xlrd模塊的基本操作
Xler的操作主要分兩步:
其一時(shí)獲取book對(duì)象,
其二book對(duì)象再次進(jìn)行excel的讀取操作。
2.1打開(kāi)excel文件獲取book對(duì)象
xlrd.open_workbook(filename[,logfile,file_contents,…])
如果filename 文件名不存在,則會(huì)報(bào)錯(cuò) FilenotFoundError。
如果filename 文件名存在,則會(huì)返回一個(gè)xrld.book.Book 對(duì)象。 import xlrd
Workbook = xlrd.open_workbook("C:\\Users\li\Desktop\銀聯(lián)測(cè)試案例.xls")
print(Workbook)

2.2獲取xlrd.book.Book 對(duì)象中的所有sheet名稱(chēng)
Names = Workbook.sheet_names()
workbook = xlrd.open_workbook("C:\\Users\li\Desktop\測(cè)試用例.xlsx")
names = workbook.sheet_names()
print(names)

2.3獲取xlrd.book.Book對(duì)象中的所有sheet對(duì)象
Sheets = workbook.sheets()
workbook = xlrd.open_workbook("C:\\Users\li\Desktop\測(cè)試用例.xlsx")
names = workbook.sheets()
print(names)
獲取單個(gè)的sheet頁(yè)對(duì)象
三種方式 :
第一種 worksheet1 = workbook.sheet_by_index()
第二種 worksheet2 = workbook.sheet_by_name()
第三種 worksheet3 = workbook.sheets()[0]
workbook = xlrd.open_workbook("C:\\Users\lw\Desktop\測(cè)試用例.xlsx")
sheets = workbook.sheets()
worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]
print(worksheet1,worksheet2,worksheet3)

2.4判斷xlrd.book.Book對(duì)象中某個(gè)sheet對(duì)象是否導(dǎo)入
通過(guò)文件名
workbook = xlrd.open_workbook("C:\\Users\lw\Desktop\測(cè)試用例.xlsx")
sheets = workbook.sheets()
print(workbook.sheet_loaded("公司分部"))
通過(guò)索引
workbook = xlrd.open_workbook("C:\\Users\lw\Desktop\測(cè)試用例.xlsx")
sheets = workbook.sheets()
print(workbook.sheet_loaded(0))
3.sheet對(duì)象的基本操作
3.1行操作
①獲取所有行數(shù)
Rows = sheet.nrows 特別注意,這是屬性而不是方法,不加括號(hào)。
workbook = xlrd.open_workbook("C:\\Users\lw\Desktop\測(cè)試用例.xlsx")
sheets = workbook.sheets()
worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]
print(worksheet1.nrows)

②獲取某行的數(shù)據(jù),值為列表形式
Value = sheet.row_values()
workbook = xlrd.open_workbook("C:\\Users\lw\Desktop\測(cè)試用例.xlsx")
sheets = workbook.sheets()
worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]
value = worksheet1.row_values(1)
print(value)

③獲取某行的類(lèi)型及數(shù)據(jù)
Sheet.row()
workbook = xlrd.open_workbook("C:\\Users\li\Desktop\測(cè)試用例.xlsx")
sheets = workbook.sheets()
worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]
value = worksheet1.row(1)
print(value)

④獲取某行的類(lèi)型的列表
Sheet.row_types()
單元類(lèi)型ctype:empty為0,string為1,number為2,date為3,boolean為4, error為5(左邊為類(lèi)型,右邊為類(lèi)型對(duì)應(yīng)的值);
workbook = xlrd.open_workbook("C:\\Users\li\Desktop\測(cè)試用例.xlsx")
sheets = workbook.sheets()
worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]
value = worksheet1.row_types(1)
print(value)

⑤以切片形式獲取某行的類(lèi)型及數(shù)據(jù)
Sheet.row_slice() 記錄分隔符為\n
workbook = xlrd.open_workbook("C:\\Users\li\Desktop\測(cè)試用例.xlsx")
sheets = workbook.sheets()
worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]
value = worksheet1.row_slice(1)
print(value)

⑥獲取某行的長(zhǎng)度
Sheet.len()
workbook = xlrd.open_workbook("C:\\Users\li\Desktop\測(cè)試用例.xlsx")
sheets = workbook.sheets()
worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]
value = worksheet1.row_len(1)
print(value)

⑦獲取sheet的所有生成器
Sheet.get_rows()
workbook = xlrd.open_workbook("C:\\Users\li\Desktop\測(cè)試用例.xlsx")
sheets = workbook.sheets()
worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]
row = worksheet1.get_rows()
for one in row:
print(one)

3.2列操作
①獲取有效列數(shù)
Sheet.cols 注意:此處為屬性不加括號(hào)
②獲取某列數(shù)據(jù)
Sheet.values()
③獲取某列類(lèi)型
Sheet.types()
單元類(lèi)型ctype:empty為0,string為1,number為2,date為3,boolean為4, error為5(左邊為類(lèi)型,右邊為類(lèi)型對(duì)應(yīng)的值);
④以slice切片方式獲取某列數(shù)據(jù)
Sheet.value_slice()
workbook = xlrd.open_workbook("C:\\Users\li\Desktop\測(cè)試用例.xlsx")
sheets = workbook.sheets()
worksheet1 = workbook.sheet_by_index(0)
worksheet2 = workbook.sheet_by_name("公司分部")
worksheet3 = workbook.sheets()[0]
cols = worksheet1.col
value = worksheet1.col_values(0)
type = worksheet1.col_types(0)
valuesl = worksheet1.col_slice(0)
print(cols)
print("----------------------")
print(value)
print("----------------------")
print(type)
print("----------------------")
print(valuesl)

3.3單元格操作
①獲取單元格數(shù)據(jù)對(duì)象。 sheet.cell(rowx,colx)類(lèi)型為xlrd.sheet.Cell
②獲取單元格類(lèi)型。Sheet.cell_type(rowx,colx)
單元類(lèi)型ctype:empty為0,string為1,number為2,date為3,boolean為4, error為5(左邊為類(lèi)型,右邊為類(lèi)型對(duì)應(yīng)的值);
③獲取單元格數(shù)據(jù)。
Sheet.cell_value(rowx,colx)
3.4對(duì)單元格中的日期/時(shí)間操作
單元類(lèi)型ctype:empty為0,string為1,number為2,date為3,boolean為4, error為5(左邊為類(lèi)型,右邊為類(lèi)型對(duì)應(yīng)的值);
①xlrd.xldate_as_tuple()
“{}-{:0>2}-{:0>2}”.format(date[0],date[1],date[2])
②xlrd.xldate_as_datetime(value,mode).strftime(“%Y-%m-%d”)
workbook = xlrd.open_workbook("C:\\Users\li\Desktop\測(cè)試用例.xlsx")
import datetime
sheet2_object = workbook.sheet_by_index(0)
value_type = sheet2_object.cell(0, 1).ctype
value_type = sheet2_object.cell_value(1, 4)
data = xlrd.xldate.xldate_as_datetime(value_type,0)
print(data.strftime("%Y-%m-%d"))
date = xlrd.xldate.xldate_as_tuple(value_type,0)
print("{}-{:0>2}-{:0>2}".format(date[0],date[1],date[2]))

到此這篇關(guān)于Python中的xlrd模塊使用整理的文章就介紹到這了,更多相關(guān)xlrd模塊的使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計(jì)處理操作
這篇文章主要介紹了python之cur.fetchall與cur.fetchone提取數(shù)據(jù)并統(tǒng)計(jì)處理操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-04-04
pycharm 如何取消連按兩下shift出現(xiàn)的全局搜索
這篇文章主要介紹了pycharm 如何取消連按兩下shift出現(xiàn)的全局搜索?下面小編就為大家介紹一下解決方法,還等什么?一起跟隨小編過(guò)來(lái)看看吧2021-01-01
python模擬預(yù)測(cè)一下新型冠狀病毒肺炎的數(shù)據(jù)
這篇文章主要介紹了python模擬預(yù)測(cè)一下新型冠狀病毒肺炎的數(shù)據(jù) ,需要的朋友可以參考下2020-02-02
python讀取json數(shù)據(jù)還原表格批量轉(zhuǎn)換成html
這篇文章主要介紹了python讀取json數(shù)據(jù)還原表格批量轉(zhuǎn)換成html,由于需要對(duì)ocr識(shí)別系統(tǒng)的表格識(shí)別結(jié)果做驗(yàn)證,通過(guò)返回的json文件結(jié)果對(duì)比比較麻煩,故需要將json文件里面的識(shí)別結(jié)果還原為表格做驗(yàn)證,下面詳細(xì)內(nèi)容需要的小伙伴可以參考一下2022-03-03
Python將圖片批量從png格式轉(zhuǎn)換至WebP格式
最近因?yàn)楣ぷ餍枰パ芯苛讼聀ng的壓縮,發(fā)現(xiàn)轉(zhuǎn)換成webp格式可以小很多,下面給大家分享利用Python將圖片批量從png格式轉(zhuǎn)換至WebP格式的方法,下面來(lái)一起看看。2016-08-08
python sys.stdin和sys.stdout的用法說(shuō)明
這篇文章主要介紹了python sys.stdin和sys.stdout的用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
用表格幫你了解Python數(shù)據(jù)類(lèi)型
這篇文章主要為大家介紹了Python數(shù)據(jù)類(lèi)型,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助<BR>2022-01-01

