簡體   English   中英

使用python遍歷excel范圍內的單元格並復制值

[英]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值復制到Q18AB18th

b) 同樣將D19th值復制到Q19thAB19th

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM