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

如何使用Python的openpyxl修改/添加相同项目的数值

问题

现有未修改状态的表格数据,需要实现相同水果项目的数值汇总的效果。当前尝试的代码存在语法错误且逻辑不符合需求,请问如何用Python的openpyxl完成该操作?

当前错误代码:

for row in range(2, 6):
    result_cell = 'A{}'.format(row)
    column_a = ws(row("Quantity") + int(row)].value
    column_b = ws[row["Fruit"] +str(row)].value

    ws[result_cell] =  column_a + column_b
解决方案

核心思路

要实现相同项目的数值汇总,需先遍历表格数据,用字典统计每个水果的数量总和,再将汇总结果写入表格。

修正后的完整代码

from openpyxl import load_workbook

# 加载目标Excel文件(替换为你的文件路径)
wb = load_workbook("your_data.xlsx")
# 选中要操作的工作表
ws = wb.active

# 初始化字典,存储每个水果的累计数量
fruit_quantity_sum = {}

# 遍历数据行(假设表头在第1行,数据范围是第2到第5行)
for row_num in range(2, 6):
    # 获取当前行的水果名称和对应数量(根据实际列位置调整,示例中Fruit在B列,Quantity在C列)
    fruit = ws[f"B{row_num}"].value
    quantity = ws[f"C{row_num}"].value
    
    # 累计相同水果的数量
    if fruit in fruit_quantity_sum:
        fruit_quantity_sum[fruit] += quantity
    else:
        fruit_quantity_sum[fruit] = quantity

# 将汇总结果写入表格(示例:从A2单元格开始写入)
current_row = 2
for fruit, total in fruit_quantity_sum.items():
    # 按预期格式写入,也可拆分到不同列
    ws[f"A{current_row}"] = f"{fruit}: {total}"
    current_row += 1

# 保存修改后的文件
wb.save("updated_data.xlsx")

关键说明

  1. 语法修正:openpyxl中访问单元格需用ws[单元格地址]或ws.cell(row=行号, column=列号)的格式,原代码索引方式不符合规范
  2. 逻辑调整:通过字典实现相同项目的数值累加,而非简单的行内单元格相加
  3. 灵活适配:代码中的列位置、数据行范围可根据你的实际表格结构调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 00:13:21