标签:
[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]
标签:
原文地址:http://www.cnblogs.com/lgjbky/p/5844133.html