复制和重新排列Excel中的列与Openpyxl

我有一个Excel文件中的数据,但它是有用的,我需要复制和粘贴到不同的顺序列。 我已经想出了如何打开和读取我的文件,并写一个新的Excel文件。 我也可以从原始数据中获取数据,并将其粘贴到我的新文件中,但不能在循环中。

这里是我正在使用的数据的一个例子,以显示我的问题,我需要A1,B1,C1彼此相邻,然后是A2,B2,C2等。

这是我创build的一个较小的testing文件的代码,

import openpyxl as op wb = op.load_workbook('coding_test.xlsx') ws = wb.active mylist = [] mylist2 = [] mylist3 = [] for row in ws.iter_rows('H13:H23'): for cell in row: mylist.append(cell.value) for row in ws.iter_rows('L13:L23'): for cell in row: mylist2.append(cell.value) for row in ws.iter_rows('P13:P23'): for cell in row: mylist3.append(cell.value) print (mylist, mylist2, mylist3) new_wb = op.Workbook() dest_filename = 'empty_coding_test.xlsx' new_ws = new_wb.active for row in zip (mylist, mylist2, mylist3): new_ws.append(row) new_wb.save(filename=dest_filename) 

我想创build一个循环来完成剩下的工作,但是我不知道如何devise它,以便我不必为每一列和每一列进行编码。

好吧,你可以像下面这样回收代码:

 import openpyxl as op wb = op.load_workbook('coding_test.xlsx') ws = wb.active new_wb = op.Workbook() dest_filename = 'empty_coding_test.xlsx' new_ws = new_wb.active for row in ws.iter_rows('H13:H23'): for cell in row: new_ws['A%s' % cell].value = cell.value for row in ws.iter_rows('L13:L23'): for cell in row: new_ws['B%s' % cell].value = cell.value for row in ws.iter_rows('P13:P23'): for cell in row: new_ws['C%s' % cell].value = cell.value new_wb.save(filename=dest_filename) 

告诉我,如果你的工作