0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python】Worksheet.insert_rowsで決まった間隔に空白行を挿入する。

Last updated at Posted at 2021-02-12

pythonを使用してExcelファイルの操作を勉強しています。
本日の気づき(復習)は、行の挿入に関してです。
pythonでExcelを操作するため、openpyxlというパッケージを使用しています。

image.png
上記のような表へ3行ごとに空白行を入れていきます。

Worksheet.insert_rowsメソッド

ws.insert_rows(行を挿入する位置)

このほかにもこの様なものがありました。

  • ws.insert_row:行を挿入
  • ws.insert_cols:列を挿入
  • ws.delete_row:行を削除
  • ws.delete_cols:列を削除

表の先頭から順番に行を追加(削除)していくと
追加(削除)した行数を考えながら次の位置を決めないといけず
私は挫折しました・・・。
ということで、最終行から順に行を入れていくことにしました。
上記の表だと行を挿入したい位置は「12行目」「9行目」「6行目」です。
先日勉強したWorksheet.max_row属性を使って

insert_row.py
from openpyxl import load_workbook

wb = load_workbook('〇〇地区一覧.xlsx')
ws = wb.active

num = 3
start_row = 2
rast_row = ws.max_row - ((ws.max_row - start_row - 1) % num)
print(f'データ入力最終行番号は{ws.max_row}です')
print('挿入する行番号は')
for row_no in range(rast_row, num+start_row, -num):
    print(f'{row_no}')
    ws.insert_rows(row_no)

wb.save('〇〇地区一覧_行挿入.xlsx')

この様な記述にしてみました。
動作確認するためにprint関数を使ってチェックします。
この辺はしらかみゅ様に教えて頂いた部分です。ありがとうございます!
insert_row.pyを実行してみると・・・
image.png

やった!ちゃんと動作してくれています。

動作確認しながらだとスムーズに記述が進みますね!ありがたい!

ちなみに、列で挿入する場合はこちらです。

insert_col.py
from openpyxl import load_workbook

wb = load_workbook('○○地区一覧_横.xlsx')
ws = wb.active

num = 2
start_column = 2
rast_column = ws.max_column - ((ws.max_column - start_column - 1) % num)

print(f'データ入力最終列番号は{ws.max_column}です')
print('挿入する列名は')
for col_no in range(rast_column, num+start_column, -num):
    col_alphabet = ws.cell(row=1, column=col_no).column_letter
    print(f'{col_alphabet}')
    ws.insert_cols(col_no)

wb.save('○○地区一覧_横_列挿入.xlsx')

挿入する列名が数字だと判りづらかったので表示だけアルファベット表記にしました。

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?