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

如何使用XlsxWriter设置Excel单元格日期格式为'MMM DD'?

问题根因

你传入的number是Python的Unix时间戳(从1970-01-01起算的秒数),但Excel的日期序列值是从1900-01-01起算的天数,两者计数规则完全不匹配,才会出现异常的远古日期显示。

正确实现代码

XlsxWriter原生支持直接传入datetime对象,不需要手动转时间戳,框架会自动处理为符合Excel规则的日期值,同时保留你设置的显示格式,编辑栏也会展示完整的原始日期:

import xlsxwriter
from datetime import datetime

def Test():
    # 替换为你实际的文件路径
    path = "test_date.xlsx"
    workbook = xlsxwriter.Workbook(path)
    worksheet = workbook.add_worksheet()

    date_string = "2021-07-02"
    datex = datetime.fromisoformat(date_string)
    
    # 设置单元格显示格式为MMM DD
    formatx = workbook.add_format({'num_format': 'MMM DD'})
    # 直接传入datetime对象即可,无需转时间戳
    worksheet.write('A1', datex, formatx)

    workbook.close()

效果说明

  • 单元格内会按你设置的格式显示为July 02
  • 顶部编辑栏会自动展示完整的原始日期07/02/2021(具体格式和你系统区域的短日期设置匹配)

如果有特殊场景需要手动生成Excel日期序列值,可调用XlsxWriter内置工具方法转换:

from xlsxwriter.utility import datetime_to_excel
excel_date_num = datetime_to_excel(datex)
worksheet.write('A1', excel_date_num, formatx)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 05:06:00