趣味

プログラミング挑戦してみた!エクセルの転記作業を自動化しよう その2

投稿日:

ディスプレイ広告1

うえぴです!

今回はフォルダ内に存在するすべてのエクセルファイルを統合することに挑戦します。

前回は、コードにエクセルのファイル名を打ち込めば統合できることを確認しましたが、それじゃぁ大量にエクセルファイルがある場合に対応できません!

前回↓

globモジュールを使って、ファイルパス名を取得

まずフォルダ内にエクセルファイルを準備します。

次にglobモジュールを使って、ファイル内のエクセルファイルのファイルパス名をGETします!

--------------------------------------------------
import glob
import pandas as pd

#ファイルパス名の取得
datafile_list = glob.glob('data/*.xlsx')

#出力
datafile_list
-------------------------------------------------

['data\\sample1.xlsx',
 'data\\sample2.xlsx',
 'data\\sample3.xlsx',
 'data\\sample4.xlsx',
 'data\\sample5.xlsx',
 'data\\sample6.xlsx',
 'data\\sample7.xlsx']

ってな感じであらかじめ用意していたフォルダ内のファイルパスをGETできました!

--------------------------------------------------
#取得したファイルパスを順に読み込み、フォルダ内のすべてのデータを読み込む
data_files1 = [pd.read_excel(datafile_list[i],sheet_name=0,parse_dates=[0]) for i in range(len(datafile_list))]
#読み込んだデータを結合
all_data1 = pd.concat(data_files1,ignore_index=True)
--------------------------------------------------

次に結合したデータをエクセルに出力します。

--------------------------------------------------
#結合したデータをエクセルに出力
all_data1.to_excel('まとめ.xlsx',index=False)
--------------------------------------------------

これで、フォルダ内にある7つのエクセルファイルを結合して1つのファイルとして出力できました!

元の7つのエクセルファイル
結合したエクセルファイル

サンプルコードまとめ

--------------------------------------------------
import glob
import pandas as pd

#ファイルパス名の取得
datafile_list = glob.glob('data/*.xlsx')

#出力
datafile_list

#取得したファイルパスを順に読み込み、フォルダ内のすべてのデータを読み込む
data_files1 = [pd.read_excel(datafile_list[i],sheet_name=0,parse_dates=[0]) for i in range(len(datafile_list))]

#読み込んだデータを結合
all_data1 = pd.concat(data_files1,ignore_index=True)

#結合したデータをエクセルに出力
all_data1.to_excel('まとめ.xlsx',index=False)
--------------------------------------------------

たった数行だけで、大量のエクセルファイルを統合することができるってめっちゃ便利ですね。
個人的には案外使えるんじゃないかと思ってたり。

2つのデータを1つのエクセルファイルに別シートで保存する場合

エクセルファイルって1つのシートじゃなくてだいたい複数のシートがありますよね!

次回、そんなエクセルファイルが複数あっても、1つのエクセルファイルに結合して出力する方法を記載したいと思います!

おたのしみにー!(している人がいれば…)

最後まで読んでいただきありがとうございました!

いいね!

ディスプレイ広告1

A8netSBIネオモバイル

-趣味

Copyright© 機械エンジニアパパの徒然なるブログ , 2022 All Rights Reserved Powered by STINGER.