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

