【YouTube動画】
面倒なExcel作業をPythonで自動化してみた【複数ファイルからデータを一瞬で抽出】
たくさんあるExcelファイルから特定のデータだけ抽出するプログラムを書きました。
ご自身の目的に合わせて適宜編集・活用していただければと思います。
ソースコード
以下がソースコードです。動画ではJupyterLab上で実行しています。
まずopenpyxlをインストールします。これは一回やればOKです。
!pip install openpyxl
次に必要なライブラリをインポートします。
import openpyxl import glob import os from openpyxl import Workbook
諸設定です。ご自身の目的に合わせて必要な情報を設定してください。
# 整理前のexcelファイルを保存しているパス folderpath_before = "/Users/K/Desktop/整理前" # データを抽出するシート名 sheet_name = "Sheet1" # データを抽出するセル # タイトル row_num_title = 2 # 行 col_num_title = 1 # 列 # 値 row_num_value = 2 # 行 col_num_value = 2 # 列 # 整理後のexcelファイルを保存するパス folderpath_after = "/Users/K/Desktop/整理後" # 整理後のexcelファイル名 after_name = "まとめ"
処理を実行するコードです。
wb = Workbook() files = sorted(glob.glob(folderpath_before + "/*.xlsx")) new_ws = wb.active count = 1 # 整理後データを入れる空リストを用意 new_ws_titles = [] new_ws_values = [] for file in files: filename, file_extension = os.path.splitext(file) opened_file = openpyxl.load_workbook(file) sheet = opened_file[sheet_name] new_ws_title = sheet.cell(row=row_num_title, column=col_num_title).value new_ws_value = sheet.cell(row=row_num_value, column=col_num_value).value new_ws_titles.append(new_ws_title) new_ws_values.append(new_ws_value) new_ws.cell(count, 1).value = new_ws_title new_ws.cell(count, 2).value = new_ws_value count += 1 # データが抽出できているか確認 print(str(new_ws_titles)) print(str(new_ws_values)) # 整理したエクセルファイルを保存 wb.save(folderpath_after + "/" + after_name + ".xlsx")
以上です。
本記事の内容を活用し、業務を効率化してくださる方が増えたら幸いです。
参考文献
こちらの本を参考にしました。
もっといろんなExcel作業を自動化したい!という方は読んでみることをおすすめします。
リンク
こちらの記事でPythonの勉強方法もご紹介しています。