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

Python 3.9写入Excel的日期格式正确但无法正常排序求助

解决Excel无法识别日期并正确排序的问题

问题出在你把datetime对象转成了字符串写入Excel,哪怕后续设置了单元格格式,Excel依然会把该单元格内容识别为文本而非日期类型,自然无法按照日期逻辑排序。

解决方法:直接写入datetime对象,而非字符串

修改excel_update函数,去掉日期转字符串的步骤,直接将date(datetime对象)传入单元格,再通过number_format设置显示格式即可。

修改后的代码:

def excel_update(date):   
    # 直接使用datetime对象,无需转为字符串
    new_row = [date]
        
    # 追加新行到最后一行内容后的第一个空行
    for col, value in enumerate(new_row, start=1):
            cell = sheet.cell(row=empty_row, column=col, value=value)
            cell.alignment = Alignment(horizontal='center', vertical='center')
            
            # 格式化日期、时间和时长列
            if col in [1, 5, 6]:
                cell.number_format = 'DD/MM/YYYY' if col == 1 else 'HH:MM:SS'
            elif col == 7:
                cell.number_format = 'hh:mm:ss'
    
    global empty_row  # 若empty_row为全局变量,需声明以修改其值
    empty_row += 1  # 移动到下一个空行
    
    wb.save(excel_file)

原理说明

  • 当你写入datetime对象时,openpyxl会自动将其转换为Excel原生的日期数值类型
  • 设置cell.number_format = 'DD/MM/YYYY'只是改变日期的显示样式,底层依然是可被Excel识别的日期值,这样排序时就会按照日期的先后逻辑处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 13:00:21