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

使用openpyxl计算XLSX文件数值时报TypeError错误该如何解决

错误原因

  • 代码中Ec = ws_template.cell(row=i+1, column=1)获取到的是Cell单元格对象,并非单元格存储的数值,直接用Cell对象和浮点数做除法、乘法运算,就会触发类型不匹配的报错。

修复方案

读取单元格对象的value属性获取实际数值即可,建议额外增加空值校验,避免对应单元格为空时出现运算错误。若第一列存在非数值格式内容,也需要提前清理成合法数值避免后续运算报错。

修复后完整代码

import openpyxl
import math

# 加载文件
XLSFILE = r"C:\Users\Name\PycharmProjects\Project_name\test.xlsx"
wb = openpyxl.load_workbook(XLSFILE, data_only=True)
ws_template = wb["Sheet1"]

# 填充计算结果
for i in range (0, 61):
    # 调用.value属性获取单元格内存储的实际数值
    Ec = ws_template.cell(row=i+1, column=1).value
    # 跳过空单元格避免报错
    if Ec is None:
        continue
    Fc = -34.5*(2*(Ec/-0.002)-math.pow(Ec/-0.002, 2))
    Fs = 206850*Ec
    if Fs > 414:
        Fs = 414
    N = 62.9*Fc+1.6*Fs
    ws_template.cell(row=i + 1, column=2).value = N

# 保存文件
wb.save(XLSFILE) 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 19:18:01