面倒なExcel作業をPythonで自動化してみた

Python

【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の勉強方法もご紹介しています。
タイトルとURLをコピーしました