Python(openpyxl)で、セルの値をクリアするコードをご紹介します。
条件書式や罫線は消えずに、そのまま残ります。
値のみクリアします。
「確実にこの範囲のデータを消したい」というときに、便利なコードです。
セル値をクリア(特定範囲)
以下のコードを実行すると、特定の範囲の値をクリアします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
for row in ws.iter_rows(min_row=2, min_col=2, max_row=6, max_col=4):
for cell in row:
cell.value = None
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test値クリア.xlsx')
シート内の B2:D6 の文字をすべて消去します。
セル値をクリア(特定シート)
以下のコードを実行すると、特定シート内のすべての値をクリアします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
for row in ws:
for cell in row:
cell.value = None
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test値クリア.xlsx')
指定シートの値をすべて消去します。
列の値をクリア(特定の列)
以下のコードを実行すると、B列の値をクリアします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
for row in ws.iter_rows():
for cell in row:
if cell.col_idx == 2:
cell.value = None
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test値クリア.xlsx')
B列の値を消去します。
[if cell.col_idx == 2:] は、B列を指定しています。
列の値をクリア(特定の複数列)
以下のコードを実行すると、C列、E~F列の値をクリアします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
mylist = [3,5,6]
for list in mylist:
for row in ws.iter_rows():
for cell in row:
if cell.col_idx == list:
cell.value = None
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test値クリア.xlsx')
指定の複数列の値を消去します。
列の値をクリア(特定列以降)
以下のコードを実行すると、特定の列以降の値をクリアします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
for row in ws.iter_rows(min_col=3):
for cell in row:
cell.value = None
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test値クリア.xlsx')
C列以降の値をすべて消去します。
行の値をクリア(特定の行)
以下のコードを実行すると、5行目の値をクリアします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
for row in ws.iter_rows():
for cell in row:
if cell.row == 5:
cell.value = None
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test値クリア.xlsx')
5行目の値を消去します。
行の値をクリア(特定の複数行)
以下のコードを実行すると、3行目、5~6行目の値をクリアします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
mylist = [3,5,6]
for list in mylist:
for row in ws.iter_rows():
for cell in row:
if cell.row == list:
cell.value = None
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test値クリア.xlsx')
指定の複数行の値を消去します。
行の値をクリア(特定行以降)
以下のコードを実行すると、特定の行以降の値をクリアします。
import openpyxl
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/test.xlsx')
ws = wb['Sheet1']
for row in ws.iter_rows(min_row=5):
for cell in row:
cell.value = None
#別名で保存
wb.save('C:/Users/xxx/Desktop/test/test値クリア.xlsx')
5行目以降の値をすべて消去します。
この記事がお役に立ちますと幸いです。
・【Python】エクセルを自動処理する方法まとめ
【Python】エクセル処理を自動化:超便利55選
...
「Python 1年生 体験してわかる!会話でまなべる!」
初めての方でも安心して取り組めるように丁寧に解説
簡単なサンプルを作りながら、対話形式でプログラミングまで紹介
人工知能の導入としてもオススメの1冊です!
リンク