Python使用xlrd模塊實(shí)現(xiàn)操作Excel讀寫的方法匯總
1.1、xlrd模塊介紹
xlrd:用于讀取Excle數(shù)據(jù)文件將返回的數(shù)據(jù)對象放到內(nèi)存中,然后查詢數(shù)據(jù)文件對象的相關(guān)信息。
xlwt:用于在內(nèi)存中生成新的數(shù)據(jù)文件對象,處理完成后寫入到Excel數(shù)據(jù)文件中。
xlutils:主要的作用就是copy新的文件對象,在新的數(shù)據(jù)對象中完成數(shù)據(jù)處理操作。
注意:在使用 xlrd 讀取 .xlsx 文件時(shí),由于 xlrd 從版本 2.0.0 開始停止支持 .xlsx 格式,可能會遇到 xlrd.biffh.XLRDError: Excel xlsx file; not supported 的錯(cuò)誤。
如果需要讀取.xlsx文件,你可能需要安裝1.2.0版本的xlrd。
1.2、xlrd操作方法匯總
1.2.1、Excel操作
1.2.1.1、打開文件
import xlrd workbook = xlrd.open_workbook('test.xls') print(workbook) # <xlrd.book.Book object at 0x7f592100ff50>
1.2.1.2、獲取所有的表名
import xlrd workbook = xlrd.open_workbook(r'./code/excelRead/test.xls') # 獲取所有的工作表名 sheet_names = workbook.sheet_names() print(sheet_names) # ['sdxl', 'hzgg', 'sdyxz', 'TB2018'] # 獲取所有的sheet對象 Sheets = workbook.sheets() print(Sheets) # [Sheet 0:<sdxl>, Sheet 1:<hzgg>, Sheet 2:<sdyxz>, Sheet 3:<TB2018>]
1.2.1.3、獲取指定的Sheet
import xlrd workbook = xlrd.open_workbook(r'./code/excelRead/test.xls') # 方式一:通過索引選取 sheet1 = workbook.sheets()[0] print(sheet1 ) # Sheet 0:<sdxl> # 方式二:通過索引選取 sheet2 = workbook.sheet_by_index(2) print(sheet2) # Sheet 2:<sdyxz> # 方式三:通過表名選取,返回一個(gè)<class 'xlrd.sheet.Sheet'>對象 sheet = workbook.sheet_by_name("hzgg") print(sheet) # Sheet 1:<hzgg>
1.2.1.4、某個(gè)sheet是否導(dǎo)入完畢
# 通過索引,檢查某個(gè)sheet是否導(dǎo)入完畢 print(workbook.sheet_loaded(0)) # True # 通過文件名,檢查某個(gè)sheet是否導(dǎo)入完畢 print(workbook.sheet_loaded("hzgg")) # True
1.2.2、sheet對象的基本操作
1.2.2.1、sheet表行操作
1.2.2.1.1、獲取表中所有的行數(shù)
import xlrd workbook = xlrd.open_workbook(r'./code/excelRead/test.xls') sheet2 = workbook.sheet_by_name("hzgg") # 特別注意,這是屬性而不是方法,不加括號 print(sheet2.nrows) # 17
1.2.2.1.2、返回指定行的所有單元格數(shù)值組成的列表
1.2.2.1.3、獲取某行的類型及數(shù)據(jù)

1.2.2.1.4、獲取某行的類型的列表
單元類型ctype:empty為0,string為1,number為2,date為3,boolean為4, error為5(左邊為類型,右邊為類型對應(yīng)的值)
1.2.2.1.5、以切片形式獲取某行的類型及數(shù)據(jù)
1.2.2.1.6、獲取某行的長度
1.2.2.1.7、獲取sheet的所有行生成器

1.2.2.2、sheet表列操作
1.2.2.2.1、獲取有效列數(shù)
import xlrd workbook = xlrd.open_workbook(r'./code/excelRead/test.xls') sheet2 = workbook.sheet_by_name("hzgg") # 獲取有效列數(shù) print(sheet2.ncols) # 9
1.2.2.2.2、獲取某列數(shù)據(jù)
1.2.2.2.3、獲取某列類型
1.2.2.2.4、以切片方式獲取某列類型及數(shù)據(jù)
1.2.2.3、單元格操作
1.2.2.4、單元格中的日期/時(shí)間操作
在使用xlrd讀取excel時(shí),我們常常會遇到日期格式的數(shù)據(jù),如果我們不經(jīng)過任何處理,那么我們得到會是如 45089.0、45171.0 這樣的excel時(shí)間戳。那么我們該如何讀取呢?這里介紹倆方法。
1.2.2.4.1、xlrd.xldate_as_tuple(xldate, datemode)
xlrd.xldate_as_tuple(xldate,datemode)
:param xldate: 要處理的單元格值,自然是excel中的日期數(shù)據(jù)
:param datemode: 使用哪條基準(zhǔn)的時(shí)間戳(0代表1900-01-01為基準(zhǔn),1代表1904-01-01為基準(zhǔn));常使用1900為基準(zhǔn)
返回值:返回一個(gè)元組,類似于(year,month,day,hour,minute,nearest_second)
但是,僅適用于date類型的excel單元格,不適用于time類型的單元格,對于time類型的單元格值,報(bào)錯(cuò):XLDateAmbiguous
1.2.2.4.2、xlrd.xldate.xldate_as_datetime(xldate, datemode)
xlrd.xldate.xldate_as_datetime(xldate,datemode)
:param xldate: 要處理的單元格值,自然是excel中的日期數(shù)據(jù)
:param datemode: 使用哪條基準(zhǔn)的時(shí)間戳(0代表1900-01-01為基準(zhǔn),1代表1904-01-01為基準(zhǔn));常使用1900為基準(zhǔn)
返回值:datetime對象,格式 year-month-day hour:minute:second
但是,對于time類型的單元格值,轉(zhuǎn)化后自動以基準(zhǔn)補(bǔ)充;如基準(zhǔn)選擇1900時(shí),時(shí)間 13:09:30 轉(zhuǎn)化后為:1900-01-01 23:08:00
到此這篇關(guān)于Python使用xlrd模塊實(shí)現(xiàn)Excel讀寫的方法匯總的文章就介紹到這了,更多相關(guān)xlrd模塊實(shí)現(xiàn)Excel讀寫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于python的圖片修復(fù)程序(實(shí)現(xiàn)水印去除)
這篇文章主要給大家介紹了關(guān)于python圖片修復(fù)程序的相關(guān)資料,可以用于實(shí)現(xiàn)圖片中水印去除,主要利用的是OpenCV這個(gè)框架實(shí)現(xiàn)的,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧2018-06-06python 用pandas實(shí)現(xiàn)數(shù)據(jù)透視表功能
這篇文章主要介紹了python 用pandas實(shí)現(xiàn)數(shù)據(jù)透視表功能的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12Python調(diào)用百度api實(shí)現(xiàn)語音識別詳解
這篇文章主要介紹了Python通過調(diào)用百度api實(shí)現(xiàn)語音識別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2021-12-12淺談python 讀excel數(shù)值為浮點(diǎn)型的問題
今天小編就為大家分享一篇淺談python 讀excel數(shù)值為浮點(diǎn)型的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12