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
相关产品推荐
相关产品推荐

