【Python】別シートにコピーする:使用例6選(openpyxl)

openpyxl-別シートコピー-アイキャッチ Python

Python(openpyxl)で、エクセルでデータをコピーして別シートに貼り付けるコードをご紹介します。

ぜひ、お試しください。

Excelで別シートにコピー(特定セル①)

以下のコードを実行すると、指定セルを別シートにコピーします。


import openpyxl

#エクセルファイルを開く
wb = openpyxl.load_workbook('C:/Users/admin/Desktop/テスト/test.xlsm')

#シートを変数格納
ws1 = wb['Sheet1']
ws2 = wb['Sheet2']

#ws1のセルをws2にコピー
ws2['A1'].value = ws1['B2'].value

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

 

コード実行後

「Sheet1」のセル [B2] をコピーして、「Sheet2」に貼り付けます。


 

Excelで別シートにコピー(特定セル②)

以下のコードを実行すると、特定セルを別シートにコピーします。


import openpyxl

#エクセルファイルを開く
wb = openpyxl.load_workbook('C:/Users/admin/Desktop/テスト/test.xlsm')

#シートを変数格納
ws1 = wb['Sheet1']
ws2 = wb['Sheet2']

#ws1のセルコピー
copy = ws1.cell(row = 2, column = 2).value
#ws2へ転記
ws2.cell(row = 1, column = 1, value = copy)

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

 

コード実行後

「Sheet1」のセル [B2] をコピーして、「Sheet2」に貼り付けます。


 

Excelで別シートにコピー(特定行)

以下のコードを実行すると、特定の行を別シートにコピーします。


import openpyxl

#エクセルファイルを開く
wb = openpyxl.load_workbook('C:/Users/admin/Desktop/テスト/test.xlsm')

#シートを変数格納
ws1 = wb['Sheet1']
ws2 = wb['Sheet2']

#コピー開始行
i = 1

#ws1のセルをループ
for row in ws1.iter_rows():
    for cell in row:
        #2行目だったら
        if cell.row == 2:
            #ws1の値をws2に転記
            ws2.cell(row=1, column=i).value = cell.value
            i = i + 1

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

 

コード実行後

「Sheet1」の2行目をコピーして、「Sheet2」に貼り付けます。


 

Excelで別シートにコピー(複数行)

以下のコードを実行すると、特定の複数行を別シートにコピーします。


import openpyxl

#エクセルファイルを開く
wb = openpyxl.load_workbook('C:/Users/admin/Desktop/テスト/test.xlsx')

#シートを変数格納
ws1 = wb['Sheet1']
ws2 = wb['Sheet2']

#ws1のセルをループ
for row in ws1.iter_rows():

    #行のデータを取得
    cells = [v.value for v in row]
    (no,name,age,area)=cells

    for cell in row:
        #2行目か4行目だったら
        if cell.row == 2 or cell.row == 4:
            #ws1の値をws2に転記
            ws2.append(cells)
            break

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

 

コード実行後

「Sheet1」の離れた行をコピーして、「Sheet2」に転記します。


 

Excelで別シートにコピー(特定列)

以下のコードを実行すると、特定の列を別シートにコピーします。


import openpyxl

#エクセルファイルを開く
wb = openpyxl.load_workbook('C:/Users/admin/Desktop/テスト/test.xlsx')

#シートを変数格納
ws1 = wb['Sheet1']
ws2 = wb['Sheet2']

#コピー開始行
i = 1

#ws1のセルをループ
for row in ws1.iter_rows():
    for cell in row:
        #2列目だったら
        if cell.col_idx == 2:
            #ws1の値をws2に転記
            ws2.cell(row=i, column=2).value = cell.value
            i = i + 1

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

 

コード実行後

「Sheet1」の2列目をコピーして、「Sheet2」に貼り付けます。


 

Excelで別シートにコピー(複数列)

以下のコードを実行すると、複数の特定列を別シートにコピーします。


import openpyxl

#エクセルファイルを開く
wb = openpyxl.load_workbook('C:/Users/admin/Desktop/テスト/test.xlsx')

#シートを変数格納
ws1 = wb['Sheet1']
ws2 = wb['Sheet2']

#転記開始行
i = 0

#コピーする列を変数格納
mylist = [2,4]

#変数をループ
for list in mylist:
    #ws1のセルをループ
    for row in ws1.iter_rows():
        for cell in row:
            #変数と一致する列だったら
            if cell.column == list:

                #1行目だったら
                if cell.row == 1:
                    i = i + 1

                #ws1の該当セルをコピー
                copy = ws1.cell(row = cell.row, column = cell.column).value

                #ws2へ貼り付け
                ws2.cell(row = cell.row, column = i, value = copy)

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

 

コード実行後

「Sheet1」の2列目・4列目をコピーして、「Sheet2」に貼り付けます。


 
※条件書式、罫線、背景色は別シートにコピーしません。
 
この記事がお役に立ちますと幸いです。
 
・【Python】エクセルを自動処理する方法まとめ
 

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

 

「Excel×Python最速仕事術」

Excelの面倒な操作はパソコンにやらせよう
実践的な例題で、業務に即したプログラムを紹介
無駄な残業をするのはもうたくさんな方にオススメの1冊です!