この記事では、Pythonのopenpyxl
ライブラリを使い、新しいExcelワークブックの作成、シートの追加・削除、セルへのデータ書き込みといった、基本的なExcelファイル書き出し操作について解説します。
1. 新しいExcelブックの作成と保存
openpyxl.Workbook()
を呼び出すことで、メモリ上に新しい空のワークブックが作成されます。この時点ではまだファイルは保存されていません。
ワークブックには、デフォルトで'Sheet'
という名前のシートが一つ含まれています。wb.active
でこのシートにアクセスし、.title
属性で名前を変更できます。
最後に、wb.save()
メソッドを呼び出して、ワークブックを.xlsx
ファイルとしてディスクに保存します。
import openpyxl
# 新しいワークブックを作成
workbook = openpyxl.Workbook()
# アクティブなシートを取得
sheet = workbook.active
# シートのタイトルを変更
sheet.title = 'SalesReport'
# 'sales_report_2025.xlsx'という名前でファイルを保存
workbook.save('sales_report_2025.xlsx')
2. シートの追加と削除
ワークブックに新しいシートを追加したり、不要なシートを削除したりすることも簡単です。
wb.create_sheet()
このメソッドは新しいシートを作成します。title
引数でシート名を、index
引数でシートの位置(0から始まる)を指定できます。
del wb['シート名']
指定した名前のシートを削除します。(古いremove_sheet()
は非推奨)
import openpyxl
# 空のワークブックを作成
workbook = openpyxl.Workbook()
print(f"作成直後のシート: {workbook.sheetnames}")
# 新しいシートを追加
workbook.create_sheet(title='ProductsList', index=0) # 先頭にシートを追加
workbook.create_sheet(title='ClientData') # 末尾にシートを追加
print(f"追加後のシート: {workbook.sheetnames}")
# 'Sheet'という名前のデフォルトシートを削除
del workbook['Sheet']
print(f"削除後のシート: {workbook.sheetnames}")
workbook.save('multi_sheet_example.xlsx')
3. セルに値を書き込む
シートオブジェクトのセルに値を書き込むには、'A1'
のような座標をキーとして直接代入するのが最も簡単な方法です。
import openpyxl
# 新しいワークブックを作成
workbook = openpyxl.Workbook()
sheet = workbook.active
# セルA1に文字列を書き込む
sheet['A1'] = 'Sample Report'
# セルB2に数値を書き込む
sheet['B2'] = 12345
# 簡単なデータリストを書き込むループ
data = [
['Product', 'Price', 'Stock'],
['Apple', 150, 200],
['Banana', 120, 350],
]
for row_data in data:
sheet.append(row_data) # appendは次の空いている行にリストを書き込む便利なメソッド
workbook.save('data_entry_example.xlsx')
まとめ
openpyxl
によるExcelファイルの作成と書き出しは、openpyxl.Workbook()
で新しいブックオブジェクトを作成し、シートを操作(名前変更、追加、削除)し、セルにsheet['A1'] = value
のように値を代入し、最後にworkbook.save()
でファイルに保存する、という流れで行います。これらの基本操作を組み合わせることで、プログラムの計算結果を整形されたExcelレポートとして出力するなど、様々なタスクを自動化できます。