Convert Excel Date Type Value

在用代码处理Excel文件中的日期数据时,读出来的是一个数值,这是因为在Excel中日期数据实际存储为距离1900-01-01的天数,因此需要转换才能得到正确的日期。

import datettime
def convert(ordinal):
    """Convert Excel Date type"""
    sd = datetime.date(1899, 12, 31)
    return datetime.datetime.fromordinal(int(ordinal) + sd.toordinal()) - datetime.timedelta(days=1)

以2013-05-28为例,该日期在Excel中存储为41422,转换后:

>>> convert(41422)
datetime.datetime(2013, 5, 28, 0, 0)