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

Openpyxl写入Excel数值为文本格式无法求和问题求助

问题解决:Openpyxl写入Excel数值为文本导致求和失败

问题核心

你用Openpyxl向Excel写入工时计算数值后无法正常求和,根源是代码里把所有字段都用f'{xxx}'转成了字符串,Excel会将这些内容识别为文本格式,自然无法执行数值运算。

解决方法

仅对字符串类型的内容使用f-string包裹,数值类型的变量直接传入,不要做字符串转换:

  • 像Datetime、diensteninfo这类文本内容,继续用f-string拼接
  • 像starttime_excel、bezahltezeit_min_excel这类计算得到的数值,直接传递变量本身即可

修改后的完整代码

bezahltezeit_min_excel = bezahltezeit_minuten / 1440
starttime_excel = float(IcsStartData.strftime("%M")) / 1440 + float(IcsStartData.strftime("%H")) * 60 / 1440
endtime_excel = float(endingtime.strftime("%M")) / 1440 + float(endingtime.strftime("%H")) * 60 / 1440
schichtdauer_excel = float(IcsSchichtDauer.strftime("%M")) / 1440 + float(IcsSchichtDauer.strftime("%H")) * 60 / 1440

# 仅对字符串字段用f-string,数值字段直接传入
ws.append([
    f'{Datetime}',
    f'{diensteninfo}{tagesinfo2}',  # 补全原代码缺失的字符串拼接加号
    f'{soup_funktion}',
    starttime_excel,
    endtime_excel,
    schichtdauer_excel,
    bezahltezeit_min_excel,
    uberzeit_netto,
    nacht_zeit_zul_10,
    nachtzulage,
    wegzeiten
])

额外提示

  • 原代码中f'{diensteninfo}'f'{tagesinfo2}'缺少字符串拼接的加号,运行会报错,修改时已补全
  • 验证方法:写入后选中数值单元格,Excel编辑栏里文本格式会带引号,数值格式直接显示数字

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 14:52:49