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()
希望有大佬 不吝赐教







猜你喜欢

转载自blog.csdn.net/weixin_40116618/article/details/80564436
今日推荐