首页 > 解决方案 > django DateField 中 Xlswriter 的输出不正确

问题描述

我使用 xlsxwriter 包从我的 django 项目中获取 excel 输出(与我的模型完全一致)。 这些是我的领域:

date1 = models.DateField(default=datetime.date.today)
date2 = models.DateField(null=True,blank=True)

所有字段的输出都完全正确地嵌入到 Excel 中,唯一的问题是字段DateField 输出不正确。这些字段的输出:

43603

我应该怎么做才能解决问题?

标签: pythondjango

解决方案


我终于找到了答案! 我阅读了更多内容 xlsxwriter,并且还查看了文档。写在这里:

Excel 中的日期和时间用实数表示,例如“Jan 1 2013 12:00 PM”用数字 41275.5 表示。

数字的整数部分存储自纪元以来的天数,小数部分存储当天的百分比。

最后是答案:

要将数字显示为日期,您必须对其应用 Excel 数字格式。

这里有些例子:

import xlsxwriter    
workbook = xlsxwriter.Workbook('date_examples.xlsx')
worksheet = workbook.add_worksheet()

# Widen column A for extra visibility.
worksheet.set_column('A:A', 30)

# A number to convert to a date.
number = 41333.5

# Write it as a number without formatting.
worksheet.write('A1', number)                # 41333.5

format2 = workbook.add_format({'num_format': 'dd/mm/yy'})
worksheet.write('A2', number, format2)       # 28/02/13

format3 = workbook.add_format({'num_format': 'mm/dd/yy'})
worksheet.write('A3', number, format3)       # 02/28/13


workbook.close()

推荐阅读