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

Openpyxl 2.6.0版本设置数字格式失效问题求助

解决Openpyxl 2.6.0设置hh:mm时间格式不生效的问题

我之前也碰到过一模一样的困扰,Openpyxl里设置时间格式没生效,大多是几个容易忽略的小细节,咱们逐个排查解决:

  • 先确认单元格值的类型是否正确
    如果A3单元格里的内容是字符串(比如"10:30")或者纯数字,就算设置了hh:mm格式也不会生效——Excel只会对时间类型的值应用时间格式。你需要先把值转换成datetime.time或datetime.datetime类型:

    from datetime import time
    # 先设置正确的时间值
    ws["A3"].value = time(10, 30)
    # 再设置格式
    ws["A3"].number_format = "hh:mm"
    
  • 别忘了保存工作簿!
    这是最容易犯的低级错误——设置完格式后一定要调用wb.save(),否则所有修改都不会写入到文件里:

    wb.save("test.xlsx")  # 这一步绝对不能少!
    
  • 检查加载工作簿的参数
    如果你加载文件时用了data_only=True,Openpyxl会读取单元格的显示值而非原始值,这时候设置格式可能无法覆盖原有状态。加载时用默认的data_only=False即可:

    wb = openpyxl.load_workbook(filename="test.xlsx", data_only=False)
    
  • 用样式设置的正确姿势
    如果你尝试用样式来设置,要确保是创建并应用完整的样式对象,而不是直接修改样式属性:

    from openpyxl.styles import NamedStyle
    
    # 创建自定义时间样式
    time_style = NamedStyle(name="custom_time")
    time_style.number_format = "hh:mm"
    
    # 应用到单元格
    ws["A3"].style = time_style
    

按照上面的步骤排查,应该就能解决格式不生效的问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 03:43:09