Pythonを使ってExcelのワークシートを別のワークブックにコピーする方法を紹介します。この記事では、openpyxl
とxlwings
という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のワークシートを別のワークブックにコピーする方法を紹介しました。openpyxl
とxlwings
の両方を試して、自分のニーズに最適な方法を見つけてください。