如下所示:
import xlrd
import datetime
file=u"伏特加.xls"#注意讀中文檔名稍微處理一下
data=xlrd.open_workbook(file)
table = data.sheet_by_index(0)#按照索引讀excel檔案
colcontent=table.col_values(1)#讀某一列,日期在第二列
nrows=table.nrows #行數
pr程式設計客棧int nrows
ncols = table.ncols#列數
print "有%s列"%ncols #只是想測試,隨便輸出不輸出
#從excel中讀取日期格式,需要轉換成python中的日期格式,轉化方法有兩種
print xlrd.xldate_as_tuple(table.cell(2,1).value, 0)
#第一種轉化為元組形式table.cell(2,1).value是取乙個日期單元格的中的值,測試
print xlrd.xldate.xldate_as_datetime(table.程式設計客棧cell(1,1).value, 0)
#這是第二種直接轉化為datetime物件
#迴圈讀取
xlist=
for i in range(1,nrows):
x=xlrd.xldate_as_tuple(table.cell(i,1).value,0)
#轉化為元組形式xldate_as_tuple
# 第二個引數有兩種取值,0ztlwsqnyos或者1,0是以1900-01-01為基準的日期,而1是1904-01-01為基準的日期。該函式返回的是乙個元組,他的值類似:(year, month, day, hour, minute, nearest_second)
xlist.append(x[0:3])#我只想要前面的不想取時分秒
for i in xlist:
print i#現在取得了需要的
#這個是第二種方法的迴圈取值
ylist=
for i in range(1,nrows):
y= xlrd.xldate.xldate_as_datetime(table.cell(i,1).value,
ylist.append(y)
for i in ylist:
print i
#python做時間差的直接函式是datetime
d1 = datetime.date(2015,10,7)
d2 = datetime.date(2013,8,15)
print type(d1)
print((d1-d2).days)
但是用上面方法讀到的日期格式不適合直接呼叫這個函式,因為型別不同。(excel裡面有計算日期差的函式,可直接使用)。。繼續補充。。
本文標題: python從excel中讀取日期一列的方法
本文位址:
python從excel中讀取資料
參考文獻 讀取excel 資料需要用到xlrd或者openpyxl模組,所以先安裝xlrd openpyxl 直接pip install xird openpyxl xlrd和openpyxl區別 1.xlrd能處理的最大行數為65535,超過這個行數的檔案就需要用到openpyxl,openpyx...
python從Excel中讀取資料
常用語法 file xlrd.open workbook 檔案路徑 開啟excel檔案 sheet info.sheet by name 工作表名稱 根據表名獲取工作表 rows num sheet.nrows 獲取表的行數 cols num sheet.ncols 獲取表的列數 rows shee...
python讀取excel中的內容
pip install xlrd 1.2.0import xlrd 步驟二 讀取excel內容 data xlrd.open workbook r c users administrator desktop test.xlsx xlrd 1 0版本才支援xlsx檔案,先版本支援的是xls table...