You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Django项目中将Python DateTime字段转为Excel可识别的日期格式

如何在Excel中获取格式正确的日期?

核心逻辑

Excel的日期类型本质是数值序列号,你需要传入Python原生的date/datetime类型对象而非格式化后的字符串,再配合Excel单元格格式配置,就能实现纯日期类型的写入效果。

第一步:修正基础转换逻辑

你当前使用strftime的写法会直接将时间对象转为字符串,完全不符合需求,先替换为以下代码得到原生date类型:

result["date_result_stamp"] = result["date_result_stamp"].date()

不同导出库的适配写法

  • 如果你使用openpyxl做导出:
    写入单元格后单独设置数字格式即可,示例:
    from openpyxl import Workbook
    wb = Workbook()
    ws = wb.active
    
    # 写入date类型值
    ws['A1'] = result["date_result_stamp"]
    # 设置单元格显示格式为年-月-日
    ws['A1'].number_format = 'YYYY-MM-DD'
    
  • 如果你使用pandas做导出:
    导出时指定date_format参数即可,无需手动转换格式:
    import pandas as pd
    
    # 先将字段统一转为date类型
    df['date_result_stamp'] = pd.to_datetime(df['date_result_stamp']).dt.date
    
    # 导出时配置日期格式
    with pd.ExcelWriter('output.xlsx', date_format='YYYY-MM-DD') as writer:
        df.to_excel(writer, index=False)
    
  • 如果你使用django-import-export做导出:
    直接在Resource类中配置字段组件即可,无需额外处理数据:
    from import_export import resources, fields
    from import_export.widgets import DateWidget
    from .models import YourModel
    
    class YourModelResource(resources.ModelResource):
        date_result_stamp = fields.Field(
            column_name='结果日期',
            attribute='date_result_stamp',
            widget=DateWidget(format='%Y-%m-%d')
        )
        
        class Meta:
            model = YourModel
    

内容的提问来源于stack exchange,提问作者Flower

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 08:45:06