今天老大交給我一個任務,對比兩個版本的excel資料的異同(增删情況),唉,說多了都是淚,自從學會了python,再也不用擔心老大這樣的任務了~~~
好了直接上代碼吧,代碼中解釋
import xlrd
import xlwt
#from xlutils.copy import copy #暫時用不上
import os
l_p=[]#定義兩個全局list,分别存儲原始和目的需要對比的資料
l_t=[]
def read_excel():
wb_pri = xlrd.open_workbook('verp.xlsx')#打開原始檔案
wb_tar = xlrd.open_workbook('vert.xlsx')#打開目标檔案
wb_result = xlwt.Workbook()#建立一個檔案,用來儲存結果
sheet_result = wb_result.add_sheet('result',cell_overwrite_ok=True)
result_i =0
result_j =0
for sheet_i in range(2,21):
sheet_pri = wb_pri.sheet_by_index(sheet_i) #通過index擷取每個sheet,為了省心,我根據自己的需要限定為第2-21個sheet
sheet_tar = wb_tar.sheet_by_index(sheet_i)
sheet_backup = wb_backup.get_sheet(sheet_i)
print(sheet_pri.name,sheet_tar.name)
#為什麼是取這一列,因為這就是需要對比的資料阿
l_p = sheet_pri.col_values(2)
l_t = sheet_tar.col_values(2)
#tmp =[var for val in a if val in b] #這個是求交集,老大沒要求是用不上的
#求參數在pri(原始資料)中存在,而在tar(目标)中不存在的
tmp_pd = list(set(l_p).difference(set(l_t)))
#求參數在tar中存在,而在pri中不存在的
tmp_td = list(set(l_t).difference(set(l_p)))
if result_i
result_i =result_j
else:
result_j =result_i
for pd_i in tmp_pd:
result_i = result_i+1
sheet_result.write(result_i,0,sheet_pri.name)
sheet_result.write(result_i,2,pd_i)
for td_i in tmp_td:
result_j =result_j +1
sheet_result.write(result_j,1,sheet_tar.name)
sheet_result.write(result_j,3,td_i)
#好了,可以去名為result的excel中檢視結果了
wb_result.save('result.xls')
if __name__ == '__main__':
read_excel()