Python(openpyxl) 行・列をコピーする:4選

Python_行列をコピー_アイキャッチ Python

Python(openpyxl)で、行・列をコピーするソースコードをご紹介します。

ぜひ、お試しください。

列をコピーする(指定列)

以下のコードを実行すると、列の値を複製します。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']

i = 1

for row in ws.iter_rows():
    for cell in row:
        if cell.col_idx == 1:
            ws.cell(row=i, column=4).value = cell.value
            i = i + 1

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testコピー.xlsx')

 

A列の値を、D列にコピーします。

[if cell.col_idx == 1:] で、コピー元のA列を指定しています。


 
 

列をコピーする(複数列)

以下のコードを実行すると、複数列の値をコピーします。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']

#コピーしたい列番号
mylist = [2,3,6]

#貼り付け開始行
i = 1

#貼り付け開始列
j = 8

#配列ループ
for list in mylist:
    #行をループ
    for row in ws.iter_rows():
        #セルをループ
        for cell in row:
            #配列の数値と同じ列番号だったら
            if cell.col_idx == list:
                #列をコピー
                ws.cell(row=i, column=j).value = cell.value
                i = i + 1
    i = 1
    j = j + 1

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/コピー.xlsx')

 

B列・C列・F列の値をコピーして、H列から貼り付けます。

「mylist = [2,3,6]」 で、コピーする列番号を指定します。


 
 

行をコピーする(指定行)

以下のコードを実行すると、行の値を複製します。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']

i = 1

for row in ws.iter_rows():
    for cell in row:
        if cell.row == 1:
            ws.cell(row=9, column=i).value = cell.value
            i = i + 1

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/testコピー.xlsx')

 

1行目の値を、9行目にコピーします。

[if cell.row == 1:] で、コピー元の1行目を指定しています。


 
 

行をコピーする(複数行)

以下のコードを実行すると、複数行の値をコピーします。


import openpyxl

wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']

#コピーしたい行番号
mylist = [2,3,6]

#貼り付け開始行
i = 12

#貼り付け開始列
j = 1

#配列ループ
for list in mylist:
    #行をループ
    for row in ws.iter_rows():
        #セルをループ
        for cell in row:
            #配列の数値と同じ行番号だったら
            if cell.row == list:
                #行をコピー
                ws.cell(row=i, column=j).value = cell.value
                j = j + 1
    j = 1
    i = i + 1

#別名で保存
wb.save('C:/Users/xxx/Desktop/test/コピー.xlsx')

 

2行目・3行目・6行目の値をコピーして、12行目から貼り付けます。

「mylist = [2,3,6]」 で、コピーする行番号を指定します。


 
この記事がお役に立ちますと幸いです。
 
・【Python】エクセルを自動処理する方法まとめ
 

【Python】エクセル処理を自動化:超便利55選
...

 

「Python 1年生 体験してわかる!会話でまなべる!」

初めての方でも安心して取り組めるように丁寧に解説
簡単なサンプルを作りながら、対話形式でプログラミングまで紹介
人工知能の導入としてもオススメの1冊です!