Python中的xlrd模塊使用整理
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:UsersliDesktop銀聯(lián)測(cè)試案例.xls')print(Workbook)
Names = Workbook.sheet_names()
workbook = xlrd.open_workbook('C:UsersliDesktop測(cè)試用例.xlsx')names = workbook.sheet_names()print(names)
Sheets = workbook.sheets()
workbook = xlrd.open_workbook('C:UsersliDesktop測(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:UserslwDesktop測(cè)試用例.xlsx')sheets = workbook.sheets()worksheet1 = workbook.sheet_by_index(0)worksheet2 = workbook.sheet_by_name('公司分部')worksheet3 = workbook.sheets()[0]print(worksheet1,worksheet2,worksheet3)
通過(guò)文件名
workbook = xlrd.open_workbook('C:UserslwDesktop測(cè)試用例.xlsx')sheets = workbook.sheets()print(workbook.sheet_loaded('公司分部'))
通過(guò)索引
workbook = xlrd.open_workbook('C:UserslwDesktop測(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:UserslwDesktop測(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:UserslwDesktop測(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:UsersliDesktop測(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:UsersliDesktop測(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:UsersliDesktop測(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:UsersliDesktop測(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:UsersliDesktop測(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)
①獲取有效列數(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:UsersliDesktop測(cè)試用例.xlsx')sheets = workbook.sheets()worksheet1 = workbook.sheet_by_index(0)worksheet2 = workbook.sheet_by_name('公司分部')worksheet3 = workbook.sheets()[0]cols = worksheet1.colvalue = 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)
①獲取單元格數(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:UsersliDesktop測(cè)試用例.xlsx')import datetimesheet2_object = workbook.sheet_by_index(0)value_type = sheet2_object.cell(0, 1).ctypevalue_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)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. python爬蟲(chóng)實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊2. python實(shí)現(xiàn)在內(nèi)存中讀寫(xiě)str和二進(jìn)制數(shù)據(jù)代碼3. .Net Core和RabbitMQ限制循環(huán)消費(fèi)的方法4. Python編寫(xiě)nmap掃描工具5. python實(shí)現(xiàn)PolynomialFeatures多項(xiàng)式的方法6. .NET6打包部署到Windows Service的全過(guò)程7. python 寫(xiě)函數(shù)在一定條件下需要調(diào)用自身時(shí)的寫(xiě)法說(shuō)明8. HTML 絕對(duì)路徑與相對(duì)路徑概念詳細(xì)9. 解決ajax請(qǐng)求后臺(tái),有時(shí)收不到返回值的問(wèn)題10. python 利用toapi庫(kù)自動(dòng)生成api
