OpenPyXLは、PythonでExcelファイルを操作する非常に便利なライブラリです。本記事では、OpenPyXLの基本的なコマンドを網羅的に解説します。これを参考に、Excel操作効率化スクリプトを書いていただけましたら本望です。
1. ファイルの読み込み
Excelファイルを操作する最初のステップが「読み込み」です。
コマンド例
from openpyxl import load_workbook
# Excelファイルを読み込む
workbook = load_workbook('sample.xlsx')
# シート名の確認
print(workbook.sheetnames)
# 特定のシートを選択
sheet = workbook['Sheet1']
# セルの値を取得
value = sheet['A1'].value
print(f"A1の値: {value}")
ポイント
load_workbook
: Excelファイルを読み込みます。sheetnames
: 全シート名をリストで取得します。- セルの値の取得:
sheet['A1'].value
でセルの値を取得可能です。
2. 新規ファイルの作成
Excelファイルを一から作成したい場合は、Workbook
を使用します。
コマンド例
from openpyxl import Workbook
# 新しいExcelファイルを作成
workbook = Workbook()
# デフォルトのシートを取得
sheet = workbook.active
# セルにデータを入力
sheet['A1'] = 'Hello, OpenPyXL'
sheet['B1'] = 123
# ファイルを保存
workbook.save('new_file.xlsx')
print("新しいExcelファイルを作成しました")
ポイント
Workbook
: 新しいExcelファイルを作成します。active
: デフォルトのシートを取得します。save
: ファイルを保存します。
3. ファイルの保存(上書き・別名保存)
既存のファイルを保存する際は、save
メソッドを使用します。
コマンド例
from openpyxl import load_workbook
# ファイルを読み込む
workbook = load_workbook('sample.xlsx')
# セルの値を変更
sheet = workbook['Sheet1']
sheet['A1'] = 'Updated Data'
# 上書き保存
workbook.save('sample.xlsx')
# 別名で保存
workbook.save('sample_copy.xlsx')
print("ファイルを保存しました")
ポイント
- 上書き保存: 読み込んだファイルと同じ名前で保存します。
- 別名保存: ファイル名を変更して保存できます。
4. シートの作成・削除・切り替え
新しいシートの作成
# 新しいシートを追加
new_sheet = workbook.create_sheet(title='NewSheet')
new_sheet['A1'] = 'This is a new sheet'
# 保存
workbook.save('new_file_with_new_sheet.xlsx')
シートの削除
# シートを削除
del workbook['NewSheet']
# 保存
workbook.save('file_after_deleting_sheet.xlsx')
デフォルトシートの切り替え
# デフォルトのアクティブシートを取得
default_sheet = workbook.active
print(default_sheet.title)
5. セルの読み書き
セル操作の基本を以下に示します。
セルの値の取得
# セルの値を取得
value = sheet['B2'].value
print(value)
セルに値を書き込む
# セルにデータを書き込む
sheet['C3'] = 'Pythonで書き込み'
行・列単位での操作
# 行単位でデータを取得
for row in sheet.iter_rows(min_row=1, max_row=5, values_only=True):
print(row)
# 列単位でデータを取得
for col in sheet.iter_cols(min_col=1, max_col=3, values_only=True):
print(col)
6. データの追記
ファイルにデータを追加する例
# データを追記
sheet.append(['新しいデータ', 456, 7.89])
# 保存
workbook.save('file_with_new_data.xlsx')
7. 条件付き書式の設定
from openpyxl.styles import PatternFill
from openpyxl.formatting.rule import CellIsRule
# 条件付き書式を設定
red_fill = PatternFill(start_color="FF0000", end_color="FF0000", fill_type="solid")
rule = CellIsRule(operator="greaterThan", formula=["50"], fill=red_fill)
sheet.conditional_formatting.add("A1:A10", rule)
# 保存
workbook.save('conditional_formatting.xlsx')
8. グラフの作成
from openpyxl.chart import LineChart, Reference
# データ範囲を指定
data = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=10)
# グラフを作成
chart = LineChart()
chart.add_data(data, titles_from_data=True)
# グラフをシートに挿入
sheet.add_chart(chart, "E5")
# 保存
workbook.save('file_with_chart.xlsx')
9. ファイルのコピーや移動
新しいファイルにシートをコピーする例です。
# シートのコピー
copied_sheet = workbook.copy_worksheet(sheet)
copied_sheet.title = 'CopiedSheet'
# 保存
workbook.save('file_with_copied_sheet.xlsx')
10. まとめ
OpenPyXLを使えば、PythonでExcelファイルを簡単に操作できます。本記事では基本から応用までのコマンドを紹介しました。以下の用途に応用できます:
- データ入力の自動化
- データの加工と解析
- レポートの作成