我想從使用xlrd模塊的excel文件中讀取日期。下面是我的代碼如下:來自excel的Python閱讀日期拋出錯誤
# Variables
myfile = '/home/mobaxterm/.git/Operation_Documentation/docs/Servicing Portal User & Certificate Inventory.xlsx'
mydate = 'Expiration Date'
row_head = 0
# Import required modules
import xlrd
import datetime
today = datetime.date.today()
book = xlrd.open_workbook(myfile)
sheet = book.sheet_by_index(1)
for col_index in range(sheet.ncols):
print xlrd.cellname(row_head,col_index),"-",
print sheet.cell(row_head,col_index).value
if sheet.cell(row_head,col_index).value == mydate:
for raw_index in range(sheet.nrows):
expire = sheet.cell(raw_index,col_index).value
print expire
expire_date = datetime.datetime(*xlrd.xldate_as_tuple(expire, book.datemode))
print 'datetime: %s' % expire_date
break
在運行我收到以下錯誤代碼:
Traceback (most recent call last):
File "cert_monitor.py", line 31, in <module>
expire_date = datetime.datetime(*xlrd.xldate_as_tuple(expire, book.datemode))
File "/usr/lib/python2.6/site-packages/xlrd/xldate.py", line 61, in xldate_as_tuple
xldays = int(xldate)
ValueError: invalid literal for int() with base 10: 'Expiration Date'
任何人都可以表明,這可能是這裏的問題?
謝謝你的時間。
您是否將列標題解析爲日期? – RickyA
xlrd.xldate_as_tuple參數的輸出類型:print type(expire),print type(book.datemode);然後查看該函數的文檔:可能其中一個參數的類型錯誤。 – sergzach
你確定你正在顯示第31行的代碼嗎? 'mydate'是唯一一個名稱爲'Expiration Date'的值,並且使用它的行看起來不是問題所在。您可能需要顯示顯示問題的文件的簡化示例。 – dansalmo