[英]Use python to iterate over cells in excel range and copy values
我在excel中有3個如下表。 這更像是一個 python for loop 問題,而不是一個 excel 問題(但它仍然涉及 excel)
ID,Name,Age,Subject
1,abc,21,maths
2,def,28,science
3,rew,38,social
ID,Name,Age,Subject
11,adbc,21,maths
23,dedf,28,science
39,rewd,38,social
ID,Name,Age,Subject
111,ancbc,21,maths
232,dedsf,28,science
391,rewsdd,38,social
所以,我的值表范圍如下
Table1 = D18:G20 (1st row,1st column is D18 (value is 1) and last row, last column is G20 (value is social)
Table2 = Q18:T20
Table3 = AB18:AE20
我想做以下
a) 將D18th
值復制到Q18
和AB18th
。
b) 同樣將D19th
值復制到Q19th
和AB19th
c) 重復此操作將每個單元格值從 Table1 復制到 Table2 和 Table3
所以,我嘗試如下(使用允許我們復制范圍的 Xlwings)
sheet1.range("D18:G18").copy()
sheet1.range("Q18:T18").paste()
sheet1.range("AB18:AE18").paste()
sheet1.range("D19:G19").copy()
sheet1.range("Q19:T19").paste()
sheet1.range("AB19:AE19").paste()
sheet1.range("D20:G20").copy()
sheet1.range("Q20:S20").paste()
sheet1.range("AB20:AE20").paste()
但上述內容並不優雅/高效。 您可以看到正在為每個范圍編寫單獨的行。
是否有任何 python 方法可以在循環中執行此操作,在每次迭代中,都會將指定的范圍復制並粘貼到提供的多個目標區域
更新 - 輸入帶有 2 個表格的 excel 屏幕截圖
正如您正確建議的那樣,一個 for 循環就足夠了,一個雙 for 循環(使用 openpyxl):
from openpyxl import load_workbook
wb = load_workbook('sample.xlsx')
ws = wb['Sheet1']
source = ws['D18':'G20']
table2 = ws['Q18':'T20']
table3 = ws['AB18':'AE20']
for row1, row2, row3 in zip(source, table2, table3):
for cell1, cell2, cell3 in zip(row1, row2, row3):
cell2.value = cell1.value
cell3.value = cell1.value
wb.save('sample.xlsx')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.