xlrd 讀取excel 日期型別2種方式

2021-08-14 05:31:34 字數 1752 閱讀 5272

有個excle**需要做一些過濾然後寫入資料庫中,但是日期型別的cell取出來是個數字,於是查詢了下解決的辦法。

基本的**結構

[python]

view plain

copy

data = xlrd.open_workbook(excel_path)  

table = data.sheet_by_index(0

)  lines = table.nrows  

cols = table.ncols  

print

u'the total line is %s, cols is %s'

%(lines, cols)  

讀取某個單元格:

[python]

view plain

copy

table.cell(x, y).value  

x:行

y:列    

行,列都是從0開始

*  時間型別的轉換,把excel中時間轉成python 時間(兩種方式)

excel某個單元格   2014/7/8

[python]

view plain

copy

xlrd.xldate_as_tuple(table.cell(2,

2).value, 

0)   

#轉化為元組形式

(2014, 7

, 8, 0

, 0, 0

)  xlrd.xldate.xldate_as_datetime(table.cell(2,2

).value, 

1)   

#直接轉化為datetime物件

datetime.datetime(2018, 7

, 9, 0

, 0)  table.cell(2,2

).value   

#沒有轉化

41828.0

原始碼檢視:

[python]

view plain

copy

# @param xldate the excel number

# @param datemode 0: 1900-based, 1: 1904-based.

xldate_as_tuple(xldate, datemode)    

輸入乙個日期型別的單元格會返回乙個時間結構組成的元組,可以根據這個元組組成時間型別

datemode 有2個選項基本我們都會使用1900為基礎的時間戳

[python]

view plain

copy

### convert an excel date/time number into a datetime.datetime object.

## @param xldate the excel number

# @param datemode 0: 1900-based, 1: 1904-based.

## @return a datetime.datetime() object.

#def

xldate_as_datetime(xldate, datemode)  

輸入引數和上面的相同,但是返回值是乙個datetime型別,就不需要在自己轉換了

當然這兩個函式都有相應的逆函式,把python型別變成相應的excle時間型別。​

本文出自 

「orangleliu筆記本」

部落格,請務必保留此出處 

xlrd讀取Excel檔案

book xlrd.open workbook day 01.xls book.nsheetsbook.sheet names sh.name 獲取工作表總行數 sh.nrows 獲取工作表總列數 sh.ncolssh.cell value rowx rowx,colx cols for rowx ...

python讀取excel檔案 xlrd

使用 xlrd 模組 1 安裝 xlrd 模組 xlrd 模組安裝 pip install xlrd ipython 裡面好像自帶有xlrd模組,不需要另外安裝 2 匯入模組 import xlrd 3 開啟檔案 data xlrd.open workbook f python.xls 4 獲取資料...

xlrd 讀取xlsx檔案 日期讀取問題

直接讀取值不對 import xlrd 引入模組 from datetime import datetime from xlrd import xldate as tuple workbook xlrd.open workbook pic.xlsx sheet workbook.sheets 0 讀...