Python合计不同sheet下同个单元格的数据

本文介绍如何使用Python的xlrd和xlwt库,读取并累加不同sheet中相同位置(如A1)的单元格数值,实现跨工作表数据运算,最终将结果保存到新的Excel文件。通过实例演示和代码分享,适合初学者理解数据处理技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python合计不同sheet下同个单元格的数据

需求:将不同sheet表格下,同一个位置的单元格的数据,进行加法运算,并保存为另一个文件

在这里插入图片描述
在这里插入图片描述

举个例子,将上图,sheet1和sheet2(不同的sheet)的A1(同个位置的单元格)数据进行加法运算,结果应该等于332
使用xlwt和xlrd模块

book_read = xlrd.open_workbook('./test.xlsx')
sh = book_read.sheet_names() # 这里需要先获取excel下所有的sheet名,输出为列表
book_write = xlwt.Workbook(encoding='gbk')
sh_write = book.add_sheet('sheet',cell_overwrite_ok=True) #cell_overwrite_ok=True 参数设置为数据可覆盖

首先先考虑一个单元格不同sheet的运算,A1的行是1,列是1

....#继上面的代码
i = 0 # 设置个容器参数,用来暂时存储数据
for s in range(0,len(sh):	#循环每个sheet
	sh_read = book_read.sheet_by_name(sheet_name=sh[s])
	z = sh_read.cell_value(0,0)	#这里的0,0是A1的位置,因为它是从0开始的,所以要减1
	i += int(z)	#int(z)因为z获取的数据类型是float,所以进行转换,因为目前数据表都是整数,为了精确一点。如果大家想要小数点后的数,可以去掉
	sh_write.write(0,0,i)
book_write.save('./result.xlsx')

可以得到结果,332

完整循环代码

基于以上代码,我们再对其套个循环,逐行逐列的计算

book_read = xlrd.open_workbook('./test.xlsx')
sh = book_read.sheet_names()
book_write = xlwt.Workbook(encoding='gbk')
sh_write = book.add_sheet('sheet',cell_overwrite_ok=True)
sh_count = book_read.sheet_by_name(sheet_name='Sheet1')
x = sh_count.nrows
y = sh_count.ncols	#x,y为获取Sheet1的总行数和总列数
for row in range(0,x):
	for col in range(0,y):
		i = 0
        for s in range(0,len(sh)):
            sheet = book_read.sheet_by_name(sheet_name=sh[s])
            z = sheet.cell_value(row,col)
            i += int(z)
            sh_write.write(row,col,i)
book_write.save('./result.xlsx')

以下为输出结果
在这里插入图片描述
日常的笔记,记录一下。以上的方法是学习了网上各路大神的思路,有哪些错误或者有其他更好的方法,请各位大神多多指导!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pound

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值