鱼C论坛

 找回密码
 立即注册
查看: 126|回复: 1

对excel的sheet里的单元格做归并求和操作

[复制链接]
发表于 2024-9-20 09:25:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
使用openpyxl对excel的sheet“workbook_new["焊接材料定额表"]”里的单元格做归并求和操作,需求如下:
原始数据如下图
           第2列      第3列     第4列   第5列
第一行 ER308        φ2.5             3.800         490.22
第二行 R305        φ2.2             0.008         1.01
第三行 R305        φ2.2            0.017         2.13
第四行 ER305        φ2.5            0.701         90.48
第五行 ER305        φ2.5             0.468         60.32

需要隔开一行,在第七行对以上数据的第二列三列相同的进行归并,对第四列第五列进行求和操作(第二列三列相同),效果如下
           第2列      第3列     第4列   第5列
第一行 ER308        φ2.5             3.800         490.22
第二行 R305        φ2.2             0.008         1.01
第三行 R305        φ2.2            0.017         2.13
第四行 ER305        φ2.5            0.701         90.48
第五行 ER305        φ2.5             0.468         60.32

第七行 ER308        φ2.5             3.800         641
第八行 R305        φ2.2             0.008         3.41




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-9-20 09:25:18 | 显示全部楼层
要使用 `openpyxl` 对 Excel 文件中指定的单元格进行归并求和操作,可以按以下步骤进行。以下是代码示例:

1. 读入 Excel 文件并获取相关数据。
2. 遍历数据,按需求进行归并和求和。
3. 将结果写回到 Excel 文件中。
import openpyxl

# 打开现有的工作簿
workbook = openpyxl.load_workbook('workbook_new.xlsx')
sheet = workbook.active

# 建立一个字典来归并并求和数据
data_dict = {}

for row in sheet.iter_rows(min_row=2, max_row=sheet.max_row, min_col=2, max_col=5):
    key = (row[0].value, row[1].value)
    if key in data_dict:
        data_dict[key][0] += row[2].value
        data_dict[key][1] += row[3].value
    else:
        data_dict[key] = [row[2].value, row[3].value]

# 将结果写入第七行之后
new_row_start = 7
for i, ((col2, col3), (sum_col4, sum_col5)) in enumerate(data_dict.items(), start=new_row_start):
    sheet.cell(row=i, column=2, value=col2)
    sheet.cell(row=i, column=3, value=col3)
    sheet.cell(row=i, column=4, value=sum_col4)
    sheet.cell(row=i, column=5, value=sum_col5)

# 保存工作簿
workbook.save('workbook_new.xlsx')

该代码对数据进行了如下操作:
- 通过遍历行来读取原始数据。
- 使用字典 (`data_dict`) 按第2列和第3列相同的关键字进行分组和求和。
- 将这些结果写入新的行,从第7行开始。

运行这个脚本后,您的 Excel 文件将会被更新,并按照需求进行归并求和操作。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-16 04:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表