Python openpyxl で 2 行ごとに空白行を挿入する方法

目次

概要

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')

コード解説

行番号処理内容
4load_workbook で既存ファイルを読み込み、active プロパティでアクティブシートを取得します。
8interval に 2 を設定し、2 行おきに空白行を挿入します。
9start_row を 3 に設定し、データ行が始まる 3 行目から判定を開始します。
12–14行番号がずれないよう、下から上へ ループしながら insert_rows を呼び出します。
17加工済みブックを別名で保存して元ファイルを保持します。

応用ポイント

要件実装例
4 行おきに空白行を挿入interval = 4 へ変更します。
空白列を一定間隔で挿入sheet.insert_cols() と右から左へのループを使用します。
既存の空白行を削除sheet.delete_rows(row_number) を必要箇所に挿入します。

パフォーマンス向上のヒント

  • 書式情報の整理
    不要なスタイルや結合セルを削除してから処理を行うと、ワークブックのサイズと実行時間を削減できます。
  • 行数が多い場合の最適化
    行番号をリスト化し、insert_rows を必要回数だけまとめて呼び出すことで速度を改善できます。

まとめ

openpyxl を利用すると、Excel ファイルに対してプログラムで柔軟に行や列を挿入・削除できます。2 行ごとに空白行を差し込むことで視認性が向上し、レポートや集計資料の体裁を整えやすくなります。ぜひ業務フローにお役立てください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

目次