如何使用openpyxl正确格式化日期?

R L*_*ynn 3 python openpyxl

我试图使用openpyxl在现有的Excel工作簿中保存日期,但是当我打开工作簿时,它们在单元格中的格式不正确。

日期在列表中的格式如下: mylist = ["09/01/2016","01/29/2016"]

保存日期的单元格在工作簿中格式化为日期“ * m / d / yyyy”。查看工作簿时,日期通常以以下格式显示:9/1/2016 1/29/2016

在Python中使用以下代码:

SheetName.cell(row=2,column=1).value = mylist[0]
Run Code Online (Sandbox Code Playgroud)

插入日期格式为09/01/2016的日期,并显示为文本格式(左对齐)。

如果单击包含日期的单元格,然后单击编辑栏,然后按Enter,则Excel将格式化并将日期显示为9/1/2016(右对齐)。

我可能会花一些时间重写代码以去除月份和月份中的前导零,但这无法解决Excel中的格式问题。

将日期添加到单元格时,是否有一种方法可以控制单元格的格式?

Aar*_*ron 5

openpyxl支持datetime对象,这些对象方便地提供了从字符串转换的方法。

import datetime
for i in len(mylist):
    dttm = datetime.datetime.strptime(mylist[i], "%m/%d/%Y")
    SheetName.cell(row=i,column=1).value = dttm
Run Code Online (Sandbox Code Playgroud)