1. 读取execl
1.前提需要安装xlrd模块,这个在网上可以找安装教程,这里就不写了
2. 打开表格
3. 读取表格的sheet
4. 按行读取数据或者列读取数据或者单元格读取数据
实际操作:
import xlrd import xlwt from xlutils.copy import copy def info_row_col_execl(file_name): myworkbook = xlrd.open_workbook(file_name) mySheetlist = myworkbook.sheets() mysheet = mySheetlist[ 0 ] nrows = mysheet.nrows ncols = mysheet.ncols return nrows,ncols def read_execl(filename): myworkbook = xlrd.open_workbook(filename) mySheetlist = myworkbook.sheets() mysheet = mySheetlist[ 0 ] return mysheet def com_exel(file_name_dai,file_name_all): dai_rows, dai_cols = info_row_col_execl(file_name_dai) all_rows,all_cols = info_row_col_execl(file_name_all) print (dai_rows, dai_cols) print (all_rows,all_cols) def read_execl_values(file_name): list_execl_values = [] mysheet = read_execl(file_name) execl_rows, execl_cols = info_row_col_execl(file_name) myRowValues_name = mysheet.row_values( 0 ) for nrow in range ( 1 ,execl_rows): myRowValues = mysheet.row_values(nrow) #print(myRowValues) myRow_name_value = dict ( zip (myRowValues_name,myRowValues)) list_execl_values.append(myRow_name_value) return list_execl_values def com_execl_values(file_name_dai,file_name_all,key_list): dai_list_execl_values = read_execl_values(file_name_dai) all_list_execl_values = read_execl_values(file_name_all) row_num = 1 for i in dai_list_execl_values: dai_list_execl_value = i dai_len_row = len (dai_list_execl_value) for k in all_list_execl_values: all_list_execl_value = k result = compare_two_dict(dai_list_execl_value,all_list_execl_value,key_list) if result = = "Pass" : #print(dai_list_execl_value,all_list_execl_value,result) print (dai_list_execl_value[ 'ID' ],dai_list_execl_value[ '名字' ],) print (all_list_execl_value[ '班级' ],all_list_execl_value[ '教师' ]) write_execl(file_name_dai,all_list_execl_value[ '班级' ],all_list_execl_value[ '教师' ],row_num,dai_len_row) break ; row_num = row_num + 1 def write_execl(file_name_dai,all_list_execl_value_1,all_list_execl_value_2,row_num,dai_len_row): open_execl = xlrd.open_workbook(file_name_dai) open_execl_copy = copy(open_execl) open_execl_copy_sheet = open_execl_copy.get_sheet( 0 ) open_execl_copy_sheet.write(row_num,dai_len_row - 3 ,all_list_execl_value_1) open_execl_copy_sheet.write(row_num,dai_len_row - 2 ,all_list_execl_value_2) open_execl_copy.save(file_name_dai) def compare_two_dict(dai_dict,all_dict,key_list): flag = True dai_dict_key = dai_dict.keys() all_dict_key = all_dict.keys() if len (key_list) ! = 0 : for key in key_list: if key in dai_dict_key and key in all_dict_key: if dai_dict[key] = = all_dict[key]: #print(dai_dict[key],all_dict[key]) flag = flag & True else : flag = flag & False else : raise Exception( 'key_list contains error key' ) else : raise Exception( 'key_list is null' ) if flag: result = "Pass" else : result = "Failed" #print(result) return result if __name__ = = '__main__' : file_name_dai = 'name_1.xlsx' file_name_all = 'name.xlsx' key_list = [ 'ID' , '名字' ] com_execl_values(file_name_dai,file_name_all,key_list) |