如何将当前日期转换为以excel存储为日期的浮点数?

时间:2013-12-09 06:57:40

标签: python excel xlrd

我可以使用xldate_as_tuple函数将从excel读取的日期转换为正确的日期。是否有任何函数可以执行相反的操作,即将正确的日期转换为浮点数,并将其作为日期存储在Excel中?

3 个答案:

答案 0 :(得分:1)

在xlrd xldate.py模块中,有几个函数xldate_from_date_tuple()xldate_from_time_tuple()xldate_from_datetime_tuple(),它们将日期时间对象转换为Excel系列日期。

此外,在XlsxWriter utility.py模块中有一个名为datetime_to_excel_datetime()的函数,它将日期时间对象转换为Excel序列日期。

所有这些解决方案都考虑到了epoch和Excel 1900 leapyear bug。

答案 1 :(得分:0)

Excel日期表示为pywintypes.Time类型对象。所以为了例如将当前时间戳分配给您执行的单元格:

workbook.Worksheets(1).Cells(1,1).Value = pywintypes.Time(datetime.datetime.now())

答案 2 :(得分:0)

几乎是Bjoern Stiel的回答(尝试向上箭头,但没有足够的声誉)。

必须添加tz_info(使用pytz):

    from win32com.client import Dispatch
    xlApp = Dispatch("Excel.Application")
    book = xlApp.Workbooks.Open(r"C:\Path\to\file")
    d = pytz.utc.localize(datetime.datetime.now())
    book.Sheets(1).Cells(2,12).Value = d