测试业务需要有一个是,一个是,一个是,一个是,如下图所示,部分列数据值相同。现在需要通过匹配生成。匹配规则复制文件,将文件中的列值与对应的列值进行匹配,实现待匹配的目标列索引中总列数的打开。
测试业务需求:1。现有a.xlsx
在a.xlsx中有两个表,即a的数据1和a的数据2
的Data2,如下所示。
2.2.a.xlsx的data1和data2都有a列,a列的一些数据值是相同的。
现在您需要匹配数据1和数据2来生成c.xlsx的数据3
匹配规则:将data2复制到c.xlsx的data3文件中,data3中e列的值是data1和data2都有一列与data1对应的e列值匹配。
实现:
def test _ data 4():file 1 = " data/a . xlsx " # Open a . xlsxwb 1 = xlrd . Open _ workbook(filename = file 1)# a . xlsx列索引hid_index1 = 0 # A.xlsx目标数据列索引target_index1 = 1 # a.xlsx的sheet=a的data1 sheet 1 = wb1 . sheet _ by _ name(" a的data1") #带有sheet的data1的总行数=a rownum1 =总列数Hid _ index2 = 1 #数据2的索引目标数据列(即sheet=a的数据2中的E列)target_index2 = 4 #获取数据2的总数sheet 2 = wb1 . sheet _ by _ name(" a的数据2 ")# sheet = row num 2 = sheet 2 . nrows #表的数据2的列数sheet = a colnum 2 = sheet 2 . ncols # xlwt准备生成数据1 write _ workbook of sheet = b = xlwt . workbook()新文件write _ sheet = write _ workbook . add _ sheet(" data1 of b ",cell _ overwrite _ ok = true)for index 2 In range(0,rownum2): forcol _ index in range (0,ColNum2): #遍历表2的每一行和每一列,并将对应的单位设置为一个新文件,即复制数据write _ sheet.write (index2,col _ index,sheet2.cell _ value (index2,Col_index)) #在遍历列的过程中,如果遇到目标数据列索引,即字段如果col _ index = = target _ index 2:for index 1 in range(1,rownum 1):hid 1 = sheet 1 . cell _ value(index 1,hid_index1)如果hid1 == sheet2.cell_value(index2,hid_index2): write_workbook,style _ list = copy 2(wb1)xf _ index = sheet 2 . cell _ xf _ index(1,RowNum1) #如果两个表的id相同,则将表1的单元格内容设置为单元格write _ sheet
评论前必须登录!
注册