pythonのopenpyxlモジュールを利用して、複数のExcelの内容を1シートに纏めるプログラミングをしていきます。
このプログラムで出来る事
任意のフォルダ内の複数のExcelファイルを取得して、新たに作成したExcelに転記する作業を自動化します。
例えば、バラバラに管理していた月次の明細を年次用に取りまとめたりすることが出来ます。
繰り返し行う「ファイルの展開、コピー、貼り付けの手作業」を省略化するのに利用します。
pythonのソースコード
作成したソースコードは以下です。
(ソースコード内に、コメントを記載したため、解説は割愛します。)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# フォルダ内のExcelファイルの内容を1ファイルにまとめる。 import openpyxl import glob, os # 定数 IN_F_NAME= '[フォルダ]/*.xlsx' # 取りまとめるファイルが配置されたフォルダ OUT_NAME= '[まとめ先のファイル名].xlsx' # ワークブックを新規作成する。 book = openpyxl.Workbook() # シートの取得 sheet = book.active work_row = 1 # 現在作業中の行 # フォルダ内のファイルを取得 for gb in glob.glob(IN_F_NAME, recursive=True): # 取得したファイル名のプロンプト表示 # print(gb) # ワークシート取得 (worksheets[0]で最初のシートを指定) sheet2 = openpyxl.load_workbook(gb).worksheets[0] # 取得したワークシートの最大行、最大列を取得 max_column = sheet2.max_column max_row = sheet2.max_row # 取得したシートの最大行をプロンプト表示 # print('max_row:' + str(max_row)) # セル内容取得('r in range(1'、'c in range(1' の部分でそれぞれシートの1行目、1列目からの取得を示す。) for r in range(1, max_row+1): for c in range(1, max_column+1): # セル内容のコピー sheet.cell(row=work_row,column=c).value = sheet2.cell(row=r,column=c).value work_row+=1 # ファイル保存(プログラム実行したフォルダに新規にファイルが作成) book.save(os.path.dirname(os.path.abspath(__file__)) + '\\' + OUT_NAME) |
ソースコード内の[フォルダ]、[まとめ先のファイル名]の部分を自身の環境に応じて編集し、利用します。
事前準備
ソースコードの動作にはpythonのインストールに加え、
openpyxlモジュールの導入が必要です。
次のコマンドを実行します。
1 |
pip install openpyxl |
参考)プログラム直書き部分を外部ファイル化
[フォルダ]、[まとめ先のファイル名]の部分をプログラム変更なしでいつでも任意の値に変更したい場合は以下をご覧ください。

python プログラムの直書きを外部ファイル化する話(configparserモジュール)
pythonのconfigparserモジュールを利用して、環境設定情報を外部ファイル化するプログラミングをしていきます。 このプログラムで出来る事 プログラム上に直書きしていた内容を外部ファイルにて管理できるようになります。 例えばログイ...
参考)python環境を実行ファイル化(exe化)
作成したプログラムを配布したい場合などには実行ファイル化(exe化)をお試しください。

pythonを仮想環境で実行ファイル化(venv、pyinstallerモジュール)
前回の記事(pythonでYouTubeアップロード(YouTubeAPI))では、pythonとyoutubeAPIによる動画の自動アップロードを作成しました。今回は、前回作成したpythonのプログラムを実行ファイル形式 (exe化) ...
参考)pythonで自動ログイン
Web上のログイン処理を自動化したい場合は以下をご覧ください。

pythonのseleniumモジュールで自動ログイン【proxy対応版】
pythonのseleniumモジュールを利用して、GoogleChrome上のWebサイトへ自動ログインするプログラミングをしていきます。 proxy対応無し版、proxy対応有り版の両方を記載していきます。 このプログラムで出来る事 手...
参考)GASとLINEボットで自動翻訳アプリ
Google Apps ScriptとLINEボットによる自動翻訳アプリです。

Google Apps ScriptとLINEボットで翻訳アプリ作成 – GASによる翻訳アプリの作成 –
Google Apps Script(GAS)のLanguageAppを利用して、英語と日本語の双方向の翻訳をするLINEボットをプログラミングをしていきます。 GoogleのOCR技術を利用して、テキストだけではなく、画像内の文字列に対し...
コメント