\

Pythonを使ってExcelのワークシートを別のワークブックにコピーする方法を紹介します。この記事では、openpyxlxlwingsという2つのPythonライブラリを使用します。

openpyxlを使用した方法

openpyxlは、Excelの.xlsxファイルを読み書きするためのPythonライブラリです。以下に、openpyxlを使用してワークシートをコピーするコードを示します。

import openpyxl as xl

# 入力ファイルと出力ファイルのパスを設定
path1 = 'sourcefile.xlsx'
path2 = 'destfile.xlsx'

# 入力ファイルを読み込む
wb1 = xl.load_workbook(filename=path1)
ws1 = wb1.worksheets[0]

# 出力ファイルを作成(もしくは既存のファイルを開く)
wb2 = xl.load_workbook(filename=path2)
ws2 = wb2.create_sheet(ws1.title)

# 入力ファイルのワークシートの内容を出力ファイルの新しいワークシートにコピー
for row in ws1:
    for cell in row:
        ws2[cell.coordinate].value = cell.value

# 出力ファイルを保存
wb2.save(path2)

このコードは、入力ファイルの最初のワークシートの内容を、出力ファイルの新しいワークシートにコピーします。新しいワークシートの名前は、入力ファイルのワークシートの名前と同じになります。

xlwingsを使用した方法

xlwingsは、ExcelとPythonを連携させるためのライブラリです。以下に、xlwingsを使用してワークシートをコピーするコードを示します。

import xlwings as xw

# Excelファイルのパスを設定
excel_file = 'excel_file.xlsx'

with xw.App(visible=False) as app:
    # ワークブックを開く
    wb1 = xw.Book(excel_file)
    # コピーしたいワークシートを選択
    ws1 = wb1.sheets['Sheet3']
    # ワークシートをコピー
    ws1.copy(before=wb1.sheets(1), name="NewSheet")
    # ワークブックを保存
    wb1.save(excel_file)

このコードは、指定したワークシートをコピーし、新しいワークシートを作成します。新しいワークシートの名前は、nameパラメータで指定します。

以上、Pythonを使ってExcelのワークシートを別のワークブックにコピーする方法を紹介しました。openpyxlxlwingsの両方を試して、自分のニーズに最適な方法を見つけてください。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です