昨天發現xlrd模組讀取的日期都變成了浮點數。今天開始學習xlrd模組中的兩種方法對日期進行讀取,確切的說是對時間的讀取。
首先匯入xlrd模組,讀取“光大2020年1月。xls”工作簿中的“bwz”工作表。並設定“hang_num”變數來接收行數。
22-0-1
為了操作方便,在圖22-0-1把行標和列標用數字標註了出來。行標和列標都是從0開始的。
一、 xlrd。xldate_as_tuple()
xlrd。xldate_as_tuple()函式的作用是將指定單元格的值轉化為(year,month,day,hour,minute,nearest_second)格式的時間元組。
定義格式:xlrd。 xldate_as_tuple(xldate,datemode)
xldate引數:代表需要處理的單元格。
datemode引數:代表時間基準,0表示以1900-01-01為基準,1代表以1904-01-01為基準。
22-1-1
圖22-1-1例子只是讀取單個單元格的值,如果想把整列日期都讀取出來,要怎麼操作呢?這就要用到前面學習的迴圈語句了。
22-1-2
圖22-1-2首先用col_types( )函式讀取第一列單元格值的型別,可以看到是一串數字。1代表str(字串),3代表date(時間),所以“bwz”工作表第一列除了“A1”單元格,其他的都是時間格式。我們用for迴圈遍歷第一列從第二行到有效行數之間的表格,可以得到一組時間元組。
二、xlrd。xldate。xldate_as_datetime( )
xlrd。xldate。xldate_as_datetime( )函式的作用是將指定單元格的值轉化為datetime格式(year-month-day hour:minute:nearest_second)。
定義格式:xlrd。xldate。xldate_as_datetime(xldate,datemode),這裡的引數xldate和datemode引數與xlrd。xldate_as_tuple()函式中的引數是一樣的意義和用法。
22-2-1
圖22-2-1讀出的時間是不是看著舒服多了,但是還不是我們想要的結果。如果能只保留日期就好了,當然要是能和“bwz”工作表中日期格式一樣就更好了。那麼要怎麼做呢?還有datetime又是什麼?這就我明天要學習的內容了。
想了解更多精彩內容,快來關注一直在學習的柳芽兒