python与execl的读写
[code=python] #复制execl中的部分数据到另一份execl中的相同位置 import xlrd import xlwt import xlutils.copy path1="E:\\测试\\系统1.xlsx" path2="E:\\测试\\系统2.xlsx" workbook1 = xlrd.open_workbook(path1) workbook2 = xlrd.open_workbook(path2) print(workbook1.sheet_names()) sheet1 = workbook1.sheet_by_name('应用层安全') # 根据sheet索引或者名称获取sheet内容 print (sheet1.name,sheet1.nrows,sheet1.ncols) # sheet的名称,行数,列数 cols0 = sheet1.col_values(0) # 获取第1列内容,用例编号 cols9 = sheet1.col_values(9) # 获取第9列内容,产品状态 cols10 = sheet1.col_values(10) # 获取第10列内容,举证说明 记得需要打开所有隐藏才能正确看到 a=[] for x,y,z in zip(cols0,cols9,cols10): print(x,y,z) a.append([x,y,z]) workbook2 = xlrd.open_workbook(path2) sheet2 = workbook2.sheet_by_name('Sheet1') cols02 = sheet2.col_values(0) # 获取第1列内容,用例编号 cols92 = sheet2.col_values(14) # 获取第9列内容,产品状态 cols102 = sheet2.col_values(15) # 获取第10列内容,举证说明 记得需要打开所有隐藏才能正确看到 b=[] for x,y,z in zip(cols02,cols92,cols102): print(x,y,z) b.append([x,y,z]) #以上已经获取了对应的两份文件的数据信息,下面将第一列的数据相同的对应上,不同的暂时不管 #原始数据 print(b) e=[] f=[] for x,y,z in a: e.append(x) for x,y,z in b: f.append(x) #查找对应位置上的数据 for x,y in enumerate(e): if e[x] in f: q=f.index(e[x]) #源数据在目标数据中的索引位置 b[q][1]=a[x][1] b[q][2]=a[x][2] #修改后的数据 print(b) #将修改后的数据写入到目标文件的对应位置,由于Python版本问题,写入需要把目标文件降到2003版本xls path3="E:\\测试\\系统3.xls" workbook3 = xlrd.open_workbook(path3,formatting_info=True) workbook4 = xlutils.copy.copy(workbook3) wd = workbook4.get_sheet(0) for x in range(len(b)): wd.write(x, 14, b[x][1]) wd.write(x, 15, b[x][2]) workbook4.save(path3) [/code]