3
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?

【python3】Excelの指定された条件で行を削除する

Posted at

はじめに

VBAで指定された条件の時に、1行削除するツールを実装し、実行したら処理に時間がかかるため、pythonでできないか調査し、実装できたので記事で紹介しようと思います。

ツールについて

以下の条件の時に、1行削除する

部署が、「Tecnology」の時、レコード1件削除する。

削除前のデータ

削除前のデータは以下の通りです

mae.jpg

ソースコード

ソースコードは下記になります。(テストのため、変数名、関数名の名前は仮です)

# 行削除テスト

# ライブラリのインポート
import openpyxl

# Global変数
# ファイル名
file_name = "data1.xlsx"
# ExcelのWorkbookインスタンスの呼び出し
wb = openpyxl.load_workbook(file_name)
# ExcelのWorksheet変数を定義する
ws = wb['Sheet1']

# 行の最終行を取得する関数
def end_row():
    # 開始行変数
    start_num = 4
    # カウント変数
    i = start_num
    while True:
        dte_str = ws.cell(i,4).value
        if dte_str != None:
            i += 1
        else:
            break
    return i-1        

finish_row_num = end_row()

count = 4
while True:
    div = ws.cell(count,4).value
    # 部署が「Tecnplogy」の時、1行削除する
    if div == "Tecnology":
        # print("削除するよ~")
        # print(count)
        ws.delete_rows(count)
    elif div == None:
        break    
    else:    
        count += 1

# 削除処理後、ファイルを保存する
wb.save(file_name)       
    

実行結果

実行結果は下記の画像です。

ato.jpg

最後に

VBAで条件に合致した行を削除するのは時間がかかりますね。

3
2
2

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
3
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?