Pythonでエクセルファイルのセルデータを検索・置換して書き換える方法
エクセルファイルのセルデータを検索して特定の文字列を新しい文字列に置換し、その結果をエクセルに書き戻す方法を説明します。この処理はopenpyxl
ライブラリを使用して行います。
1. ライブラリのインストール
まず、openpyxl
ライブラリをインストールします。
pip install openpyxl
2. ライブラリのインポート
openpyxl
を使うために必要なライブラリをインポートします。
import openpyxl
3. エクセルファイルの読み込み
エクセルファイルを読み込みます。ここでは例として sample.xlsx
を使用します。
excel_file_path = 'path/to/your/excel/file.xlsx'
workbook = openpyxl.load_workbook(excel_file_path)
4. シートの取得
シートを取得します。デフォルトでは最初のシートが選択されます。
sheet = workbook.active
もし特定のシートを指定したい場合は、以下のように行います。
sheet_name = 'Sheet1' # シート名を指定 sheet = workbook[sheet_name]
5. セルデータの検索と置換
特定の文字列を検索して、新しい文字列に置換します。ここでは例として "old_text" を "new_text" に置換するとします。
for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row, min_col=1, max_col=sheet.max_column): for cell in row: if cell.value == "old_text": cell.value = "new_text"
この例では、エクセルの各セルを順番に検索し、"old_text" を見つけたらそれを "new_text" に置換しています。
6. エクセルファイルへの保存
変更を加えた後、エクセルファイルを保存します。
workbook.save('path/to/your/new/excel/file.xlsx')
7. 完成したコード
最終的なコードは以下のようになります。
import openpyxl # エクセルファイルのパス excel_file_path = 'path/to/your/excel/file.xlsx' # エクセルファイルの読み込み workbook = openpyxl.load_workbook(excel_file_path) # シートの取得(デフォルトでは最初のシート) sheet = workbook.active # セルデータの検索と置換 for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row, min_col=1, max_col=sheet.max_column): for cell in row: if cell.value == "old_text": cell.value = "new_text" # エクセルファイルへの保存 workbook.save('path/to/your/new/excel/file.xlsx')
8. まとめ
この記事では、Pythonを使用してエクセルファイルのセルデータを検索して置換し、変更を保存する方法を紹介しました。これにより、大量のデータを効率的に操作することができます。ぜひ自分のプロジェクトや業務に応用してみてください。