python对excel求和_Python 两个Excel文件对应位置求和并存储

最近~老板给我的工作一直都有对大量的Excel的操作

比如两Excel对应位置求和,并存储。(两Excel表格的第一列和第一行是一毛一样的,不需要求和,原样保存!)

本着能躺着就不坐着的原则,只想快点躺着,果断放弃了手工操作!!决心利用Python解决!!(可见会一门编程语言有多么的重要)

先总结下Python利用Excel需要用到的知识:(方便自己以后用到)

(1)导入模块

import xlrd #导入读模块

import xlwt #导入写模块

(2) 读操作

wb = xlrd.open_workbook("file.xls") #打开Excel文件

sheet = wb.sheet_by_name("Sheet1") #通过sheet名字获取工作表sheet

sheet = wb.sheet_by_index(0) #通过索引号获取工作表sheet,从0开始 :0--sheet1

ncols=sheet.ncols #获取工作表中列数

nrows=sheet.nrows #获取工作表行数

raw_i=sheet.row_values(i):#获取工作表中某一行的值,结果为列表形式。从0开始:0--第一行

col_i=sheet.col_values(i):#获取工作表中某一列的值,结果为列表形式。从0开始:0--第一列

for i in range(ncols): #获取全部列的值(行亦如此)

print(sheet.col_values(i))

cell_value=sheet.cell(行,列).value #获取单元格的值

cell_value=sheet.row(i)[j].value #获取工作表中(i+1行,j+1列)的值

(3)写操作

wb = xlwt.Workbook() #新建一个Excel文件

sheet = file.add_sheet('sheet名字',cell_overwrite_ok=True) #新建一个sheet工作表

sheet.write("行","列","内容") #向工作表内写入内容

sheet.save("存储路径and文件名") #举例:c://desktop//file.xls

(4)自己写的很菜的代码

实现的功能:利用Python将两个Excel表格对应位置相加,并存储在一个新的Excel文件中。但是因两个Excel表的第一列和第一行都是一样的,所以不需要相加,保持原样存储至新的Excel表格中:

import xlrd,csv

import xlwt

class CombineExcel():

def combine_excel(self,file_1,file_2):

wb_pri = xlrd.open_workbook(file_1) #打开原始文件

wb_tar = xlrd.open_workbook(file_2) #打开目标文件

wb_result = xlwt.Workbook() #新建一个文件,用来保存结果

sheet_result = wb_result.add_sheet('Sheet1',cell_overwrite_ok=True)

result_i =0

result_j =0

sheet_pri = wb_pri.sheet_by_index(0) # 通过index获取每个sheet

sheet_tar = wb_tar.sheet_by_index(0) # 通过index获取每个sheet

ncols = sheet_pri.ncols # Excel列的数目 原Excel和目标Excel的列表的长度相同

row_0=sheet_pri.row_values(0) #获取第一行的值

col_0=sheet_pri.col_values(0) #获取第一列的值

for i,key in enumerate(row_0): #写入新Excel表的第一行

sheet_result.write(0,i,key)

for i,key in enumerate(col_0): #写入新Excel表的第一列

sheet_result.write(i,0,key)

for i in range(1,ncols): #将Excel表格对应位置相加

l_p = sheet_pri.col_values(i,start_rowx=1,end_rowx=None)

l_t = sheet_tar.col_values(i,start_rowx=1,end_rowx=None)

l_r= [l_p[i]+l_t[i] for i in range(0, len(l_p))] # 两列表对用位置相加

print(l_r)

for j,key in enumerate(l_r):

sheet_result.write(j+1,i,key)

wb_result.save("combine.xls")

if __name__=="__mian__":

file_1 = "123.xls"

file_2 = "456.xls"

combine_excel()

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值