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

如何使用openpyxl计算Excel列值总和?解决TypeError报错

问题解决:Excel列值求和报错修复

错误原因

你代码里的sum(b)调用是错误的——b是单个浮点数,而sum()函数需要接收可迭代对象(比如列表、元组),直接传入单个数值会触发TypeError: 'float' object is not iterable。

修正后的代码

import openpyxl

# 加载工作簿和激活工作表
wb = openpyxl.open("AAB.xlsx")
ws = wb.active

column_name = 'Услуги по доставке товара покупателю'
values_list = []    # 存储列中所有有效数值

for column_cell in ws.iter_cols(1, ws.max_column):
    if column_cell[0].value == column_name:
        # 遍历列中除表头外的所有单元格
        for data in column_cell[1:]:
            cell_value = data.value
            # 处理空值或非数值的情况,避免转换报错
            if cell_value is not None:
                try:
                    num = float(cell_value)
                    values_list.append(num)
                except ValueError:
                    # 遇到非数值内容时跳过
                    print(f"跳过非数值单元格: {cell_value}")
        # 计算总和并输出
        column_total = sum(values_list)
        print(f"列 '{column_name}' 的总和为: {column_total}")
        break

代码说明

  • 先用列表values_list收集列中所有有效数值,避免循环中错误调用sum()
  • 加入try-except块处理非数值单元格,防止代码因单元格内容不是数字而崩溃
  • 遍历完目标单元格后,对列表调用sum()得到最终总和

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 16:55:30