如果存在某些列的交叉点,如何将一行中的行复制到另一个表中

鉴于:

我有一个文件grumble.xlsx

内部有3个标签: Sheet1 Sheet2 and Sheet 3

 Sheet 1 has 588 rows and 11 columns of data Sheet 2 has 3029 rows and 17 columns of data Sheet 3 in empty 

目标:

如果将sheet1 column_name S2 ==的值设置为sheet2 column_name sp2的值 – >将sheet2中的整行复制并粘贴到sheet 3中

必须有588个匹配,就像sheet1中的行数一样

到目前为止,我已经到了这一步。 我不知道该往哪里走

 import openpyxl wb = openpyxl.load_workbook('/home/russell/Desktop/grumble.xlsx') ws1 = wb.get_sheet_by_name('Sheet1') ws2 = wb.get_sheet_by_name('Sheet2') ws3 = wb.get_sheet_by_name('Sheet3') S1 = set() S2 = set() for row in ws1.iter_rows(min_row=2, max_col=10, max_row=588): for cell in row: S1.add(cell.value) for row in ws1.iter_rows(min_row=2, max_col=16, max_row=3029): for cell in row: S2.add(cell.value) print(list(set(S1) & set(S2))) 

我build议你为图纸创build两个pandas数据框进行比较,并将结果帧写入第三个工作表。 有关在openpyxl和Pandas之间转换的更多信息,请参见http://openpyxl.readthedocs.io/en/latest/pandas.html