Python openpyxl如何将单元格格式设置为日期而不是自定义

Python openpyxl如何将单元格格式设置为日期而不是自定义,python,pandas,datetime,openpyxl,Python,Pandas,Datetime,Openpyxl,我正在使用openpyxl和pandas生成一个Excel文件,需要将日期格式化为Excel中的日期。导出文件中的日期以dd/mm/yyyy格式正确格式化,但当我右键单击单元格并转到“格式化单元格”时,会显示“自定义”,是否有方法更改为日期?这是我指定日期格式的代码 writer = pd.ExcelWriter(dstfile, engine='openpyxl', date_format='dd/mm/yyyy') 我还尝试设置了cell.number\u format='dd/mm/y

我正在使用openpyxl和pandas生成一个Excel文件,需要将日期格式化为Excel中的日期。导出文件中的日期以dd/mm/yyyy格式正确格式化,但当我右键单击单元格并转到“格式化单元格”时,会显示“自定义”,是否有方法更改为日期?这是我指定日期格式的代码

 writer = pd.ExcelWriter(dstfile, engine='openpyxl', date_format='dd/mm/yyyy')

我还尝试设置了
cell.number\u format='dd/mm/yyyyy'
,但仍然在Excel中使用自定义格式。

如果它们在数据框中保存为字符串,则可能需要将它们转换为python中的
datetime
对象。一种方法是迭代单元格,并在使用
ExcelWriter
后执行:

cell = datetime.strptime('30/12/1999', '%d/%m/%Y')
cell.number_format = 'dd/mm/yyyy'
更好的方法是在数据帧之前转换该列。您可以使用Pandas中的函数来实现这一点


有关在数据框中转换整个列的详细信息,请参阅。

如果在数据框中将它们保存为字符串,则可能必须将它们转换为python中的
datetime
对象。一种方法是迭代单元格,并在使用
ExcelWriter
后执行:

cell = datetime.strptime('30/12/1999', '%d/%m/%Y')
cell.number_format = 'dd/mm/yyyy'
更好的方法是在数据帧之前转换该列。您可以使用Pandas中的函数来实现这一点


有关转换数据框中整列的详细信息,请参阅。

我已尝试设置cell.number\u格式,但它在cell中仍显示为自定义格式Formatting@KhalidAmin您需要将其保存为
datetime
对象,而不是字符串。它是如何在您的数据框中定义的?我正在使用srptime将其转换为日期,然后再应用number\u格式,但它仍然没有work@KhalidAmin这很奇怪,你能更新这个问题,或者添加更多的代码,这样我们就可以尝试重现错误了吗?当我在这里这样做时,它似乎工作得很好。我已经尝试设置cell.number\u格式,但它仍然在cell中显示为自定义Formatting@KhalidAmin您需要将其保存为
datetime
对象,而不是字符串。它是如何在您的数据框中定义的?我正在使用srptime将其转换为日期,然后再应用number\u格式,但它仍然没有work@KhalidAmin这很奇怪,你能更新这个问题,或者添加更多的代码,这样我们就可以尝试重现错误了吗?当我在这里做的时候,它似乎工作得很好。