Python『openpyxl』を使ったExcel一括書き込み入門
この記事では、Pythonのopenpyxlライブラリを用いてExcelファイルにデータを一括で書き込む方法について詳しく解説します。実務やプロジェクトで役立つスキルを身につけるため、データの準備からフォーマットの適用、ファイルの保存やエラーハンドリングまで、具体的なコードとともに理解していきましょう。
ほかの記事
- Python『openpyxl』入門:Excelセルのフォント・背景色・配置情報を取得する方法
- Pythonのopenpyxlを使ったExcelセル書式設定入門 – 実務で役立つフォーマット技術
- Excel作業を自動化!Python『openpyxl』で結合セルの操作方法を徹底解説
Python『openpyxl』を使ったExcel一括書き込みサンプルコード
# 必要なライブラリのインポート
from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Border, Side
# 1. Excelファイルの作成
wb = Workbook()
# 2. シートの追加
ws = wb.create_sheet(title="新しいシート")
# 3. データ準備
data = [
["名前", "年齢", "職業"],
["田中", 30, "エンジニア"],
["鈴木", 25, "デザイナー"],
["佐藤", 22, "マーケター"]
]
# 4. シートへの一括書き込み
for row in data:
ws.append(row)
# 5. フォーマットの適用
# 5.1 フォントの設定(ヘッダーを太字にする)
for cell in ws["1:1"]:
cell.font = Font(bold=True)
# 5.2 背景色の設定(ヘッダーに色をつける)
fill = PatternFill(start_color="FFFF99", end_color="FFFF99", fill_type="solid")
for cell in ws["1:1"]:
cell.fill = fill
# 5.3 ボーダーの設定(すべてのセルに境界線を適用)
border = Border(left=Side(style="thin"),
right=Side(style="thin"),
top=Side(style="thin"),
bottom=Side(style="thin"))
for row in ws.iter_rows(min_row=1, max_row=4, min_col=1, max_col=3):
for cell in row:
cell.border = border
# 6. ファイル保存先の設定
file_path = "./data.xlsx"
# 7. エクセルファイルの保存
try:
wb.save(file_path)
print("ファイルが保存されました:", file_path)
except PermissionError:
print("ファイルが開かれている可能性があります。ファイルを閉じてから再度保存してください。")
1. ライブラリのインポート
まず、Pythonの環境にopenpyxlライブラリがインストールされていることを確認します。インストールされていない場合は、以下のコマンドでインストールしてください。
pip install openpyxl
その後、openpyxlをインポートします。
from openpyxl import Workbook
このコードで、openpyxlのWorkbookオブジェクトを使用できるようになります。
2. Excelファイルの作成
次に、Excelファイルを作成します。Workbookオブジェクトを生成することで、新しいExcelファイルを操作できるようになります。
wb = Workbook()
ここで生成されたwb
が、新しいExcelワークブックのインスタンスになります。
3. シートの追加
デフォルトでは、新しいワークブックには1つのシートが含まれていますが、追加のシートを必要に応じて作成できます。
ws = wb.create_sheet(title="新しいシート")
このコードで、名前が「新しいシート」のシートが追加されます。
4. データ準備
4.1 値のリスト化
Excelに書き込むためのデータを準備します。まず、リスト形式でデータを作成します。
data = [["名前", "年齢", "職業"], ["田中", 30, "エンジニア"], ["鈴木", 25, "デザイナー"], ["佐藤", 22, "マーケター"]]
このコードで、3行3列のデータが用意されました。
4.2 二次元配列への変換
書き込みの際は二次元配列のまま使用します。リスト内リストの形状でデータを保つことで、一括書き込みが容易になります。
5. シートへの一括書き込み
シートにデータを書き込むために、openpyxlのappend
メソッドを使用します。
for row in data:
ws.append(row)
このループで各行が順番にExcelシートに書き込まれます。
6. フォーマットの適用
次に、データに対してフォーマットを適用します。openpyxlではフォントの設定、背景色の変更、セルのボーダー設定が可能です。
6.1 フォントの設定
ヘッダー部分のフォントを強調するために、太字にします。
from openpyxl.styles import Font
for cell in ws["1:1"]:
cell.font = Font(bold=True)
6.2 背景色の設定
openpyxlのPatternFill
を使用して、セルに背景色を設定します。
from openpyxl.styles import PatternFill
fill = PatternFill(start_color="FFFF99", end_color="FFFF99", fill_type="solid")
for cell in ws["1:1"]:
cell.fill = fill
6.3 ボーダーの設定
セルの境界線(ボーダー)を設定することも可能です。
from openpyxl.styles import Border, Side
border = Border(left=Side(style="thin"),
right=Side(style="thin"),
top=Side(style="thin"),
bottom=Side(style="thin"))
for row in ws.iter_rows(min_row=1, max_row=4, min_col=1, max_col=3):
for cell in row:
cell.border = border
このコードで、全てのデータに境界線が適用されます。
7. ファイル保存先の設定
保存先のパスを指定します。相対パス、絶対パスどちらも使用可能です。
file_path = "./data.xlsx"
相対パスで保存する場合はこのコードで十分です。
8. Excelファイルの保存
準備したデータを含むExcelファイルを保存します。save
メソッドを使用します。
wb.save(file_path)
これにより、ファイルが指定したパスに保存されます。
9. ファイルの閲覧
作成したファイルが正常に保存されているかを確認するため、Excelで開いて内容をチェックしましょう。
10. エラー処理
ファイル操作の際には、エラーハンドリングを行うことで、エラーが発生してもプログラムが異常終了しないようにします。
try:
wb.save(file_path)
except PermissionError:
print("ファイルが開かれている可能性があります。ファイルを閉じてから再度保存してください。")
このコードで、保存時にファイルが開かれているとPermissionError
が発生するため、それを回避します。
まとめ
この記事では、Pythonのopenpyxlライブラリを使ってExcelファイルにデータを書き込む方法について学びました。ファイルの生成、データの書き込み、フォーマットの適用、エラー処理を理解することで、実務でも役立つExcel操作スキルを習得できたでしょう。今後は、さらに高度なExcel処理にも挑戦してみましょう。
openpyxlの公式サイトはこちらからアクセスできます:
これらのリンクから、openpyxlの最新バージョン情報やソースコード、ドキュメントを確認できます。
コメント