目次
概要
Excel ワークシートの可読性を高めるために、一定間隔で空白行を差し込みたい場合があります。本記事では openpyxl を用いて、データ行を 2 行おき に区切る手順を解説いたします。
前提環境
項目 | 内容 |
---|---|
開発環境 | Windows または macOS 上の Python 3.8 以降 |
必要ライブラリ | openpyxl(pip install openpyxl ) |
入力ファイル | category_sales.xlsx |
出力ファイル | category_sales_modified.xlsx |
サンプルコード
from openpyxl import load_workbook
# 既存ブックの読み込み
input_path = 'category_sales.xlsx'
workbook = load_workbook(input_path)
sheet = workbook.active
# 空白行を挿入する間隔(2 行おき)
interval = 2
# 最初に空白行を挿入する基準行(ここでは 3 行目)
start_row = 3
# 下から上へループして行を挿入
for row_idx in range(sheet.max_row - interval + 1,
start_row - 1,
-interval):
sheet.insert_rows(row_idx)
# 変更内容を保存
workbook.save('category_sales_modified.xlsx')
コード解説
行番号 | 処理内容 |
---|---|
4 | load_workbook で既存ファイルを読み込み、active プロパティでアクティブシートを取得します。 |
8 | interval に 2 を設定し、2 行おきに空白行を挿入します。 |
9 | start_row を 3 に設定し、データ行が始まる 3 行目から判定を開始します。 |
12–14 | 行番号がずれないよう、下から上へ ループしながら insert_rows を呼び出します。 |
17 | 加工済みブックを別名で保存して元ファイルを保持します。 |
応用ポイント
要件 | 実装例 |
---|---|
4 行おきに空白行を挿入 | interval = 4 へ変更します。 |
空白列を一定間隔で挿入 | sheet.insert_cols() と右から左へのループを使用します。 |
既存の空白行を削除 | sheet.delete_rows(row_number) を必要箇所に挿入します。 |
パフォーマンス向上のヒント
- 書式情報の整理
不要なスタイルや結合セルを削除してから処理を行うと、ワークブックのサイズと実行時間を削減できます。 - 行数が多い場合の最適化
行番号をリスト化し、insert_rows
を必要回数だけまとめて呼び出すことで速度を改善できます。
まとめ
openpyxl
を利用すると、Excel ファイルに対してプログラムで柔軟に行や列を挿入・削除できます。2 行ごとに空白行を差し込むことで視認性が向上し、レポートや集計資料の体裁を整えやすくなります。ぜひ業務フローにお役立てください。