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

