有個excle**需要做一些過濾然後寫入資料庫中,但是日期型別的cell取出來是個數字,於是查詢了下解決的辦法。
基本的**結構
[python]
view plain
copy
data = xlrd.open_workbook(excel_path)
table = data.sheet_by_index(0
) lines = table.nrows
cols = table.ncols
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 讀...