Pythonで、エクセルの数値が0の行を削除するコードをご紹介します。
ぜひ、お試しください。
数値が0の行を削除する
以下のソースコードを実行すると、数値が0の行を全削除します。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
#シートの最終行を取得
Sheet_Max = ws.max_row +1
#最終行から逆ループ
for i in reversed(range(Sheet_Max)):
if i == 0:
break
#B列が0だったら
if ws.cell(row=i, column=2).value == 0:
#行削除
ws.delete_rows(i)
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test行削除.xlsx')
ソースコード実行後
Excelシート内で、値がゼロの行を自動削除しました。
[if ws.cell(row=i, column=2).value == 0:] は、セルの値が「0」かどうか判定します。
[ws.delete_rows(i)] は、該当の行を削除します。
数値が0の行を削除する(複数セルを判定)
以下のソースコードを実行すると、数値が0の行を一気に削除します。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
#シートの最終行を取得
Sheet_Max_Row = ws.max_row
#シートの最終列を取得
Sheet_Max_Clm = ws.max_column
#行を逆ループ
for i in reversed(range(Sheet_Max_Row + 1)):
if i == 0:
break
# 列をループ
for j in range(2,Sheet_Max_Clm + 1):
#値が0だったら
if ws.cell(row=i, column=j).value == 0:
if j == Sheet_Max_Clm:
#行を削除
ws.delete_rows(i)
else:
continue
#値が0じゃなかったら
else:
break
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test行削除.xlsx')
ソースコード実行後
B~F 列の値がすべてゼロの行をまとめて削除しました。
下図ではプログラム実行結果が分かりやすいように、
「0」のセルに色付けしてから、プログラムを動作させています。
参考になりましたら、幸いです。

【Python】エクセル処理を自動化:超便利28選
...