openpyxl と pathlib で「ブック一覧引き継ぎ資料」を自動生成する方法

業務引き継ぎ時に、フォルダー階層内に点在する Excel ファイルの存在を漏れなく共有したい場合がございます。本記事では pathlib でブックのフルパスを取得し、openpyxl で一覧シートを作成する手順を丁寧にご説明いたします。ヘッダー行には罫線と背景色を付与し、視認性も確保いたします。


目次

動作環境

項目内容
Python3.10 以上
利用ライブラリopenpyxl  (pip install openpyxl)

サンプルスクリプト

from pathlib import Path
from openpyxl import Workbook
from openpyxl.styles import Border, PatternFill, Side

# 1. 空のワークブックとシートを準備いたします。
wb_catalog = Workbook()
ws_index   = wb_catalog.active
ws_index.title = "FileList"

# 2. 列幅を調整いたします。(B 列:パス、C 列:ファイル名)
ws_index.column_dimensions['B'].width = 46
ws_index.column_dimensions['C'].width = 32

# 3. 罫線と塗りつぶしを定義いたします。
thin = Side(border_style='thin', color='000000')
common_border = Border(left=thin, right=thin, top=thin, bottom=thin)
header_fill   = PatternFill(fill_type='solid', fgColor='C6E0B4')

# 4. ヘッダー行を作成いたします。
headers = ('No.', 'Path', 'Filename')
for col, title in enumerate(headers, start=1):
    cell = ws_index.cell(row=1, column=col, value=title)
    cell.border = common_border
    cell.fill   = header_fill

# 5. 対象フォルダーを走査し、ファイル情報を書き込みます。
base_dir = Path('./books')
for seq, xlsx_file in enumerate(base_dir.rglob('*.xlsx'), start=1):
    row = seq + 1
    ws_index.cell(row=row, column=1, value=seq).border = common_border
    ws_index.cell(row=row, column=2,
                  value=str(xlsx_file.parent)).border = common_border
    ws_index.cell(row=row, column=3,
                  value=xlsx_file.name).border = common_border

# 6. ファイルを保存いたします。
wb_catalog.save('handover_catalog.xlsx')

コード解説

ステップ説明
Path.rglob('*.xlsx')サブフォルダーを含めて .xlsx を再帰的に検索いたします。
連番の付与enumerate(..., start=1) により 1 からの連番を自動付与いたします。
xslx_file.parent親ディレクトリーを取得し、パス列に表示いたします。
罫線の適用データ行にも同じ Border を設定し、表全体の体裁をそろえております。

応用アイデア

ニーズ実装例
PDF も対象に含めたいrglob('*.xlsx')rglob('*.{xlsx,pdf}') へ変更なさってください。
検索対象を更新日時順に並べたいsorted(base_dir.rglob('*.xlsx'), key=lambda p: p.stat().st_mtime) をご利用ください。
ハイパーリンクを付与したいws_index.cell(...).hyperlink = xlsx_file.as_uri() でセルから直接開けます。

まとめ

  • pathlibopenpyxl を組み合わせることで、フォルダー階層内の Excel ファイルを自動的に検出し、一覧シートを作成できます。
  • 罫線と背景色を追加することで、視認性に優れた引き継ぎ資料を短時間で作成可能です。
  • 応用例を組み合わせれば、PDF など他形式のファイルを含めたより汎用的なカタログにも拡張できます。どうぞご活用ください。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次