首页 > 编程知识 正文

Python 两个Excel文件对应位置求和并存储,excel两个文件对比

时间:2023-05-06 15:12:39 阅读:285689 作者:1585

最近~老板给我的工作一直都有对大量的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名字获取工作表sheetsheet = 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,csvimport xlwtclass 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()




 

 

 

 

 

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。