こんにちは、さすを(@sasuwo0409)です。
いきなりですが、
フォルダにある画像を自動でExcelに張り付けたい!
と思ってはいませんか?
今回の記事は、Pythonを使ってフォルダにある画像を自動でExcelに張り付ける方法を解説してみたいと思います。
この記事を読めば、「複数枚ある画像をExcelに張り付けていく」という地獄のような単純作業を効率的に終わらせることができます。
それでは本文をどうぞ。
大量に集めた画像をExcelに張り付けていかなきゃいけないんだけど、ひとつひとつ手でやるのほんとうにめんどくさい、、
もっと効率的にできる方法はないかしら、、
この悩みを解決します!
※0円のサンプルテキストという近道
独学よりプログラミングスクールの方が効果は出やすいですが、値段が高く、なかなか手を出しづらいですよね。techgymでは無料のサンプルテキストと解説動画をもらえるので、これを使ってお得にPythonの基礎を学ぶのもオススメです。
最短1分でできる!
1.Pythonを使って複数枚の画像を自動でExcelに張り付ける方法
今回はGoogle Colaboratory上でプログラムを動かしていきます。
Google Colaboratoryの使い方については「【3分で解決!】Google Colaboratoryの使い方【無料ですぐにPythonを使えます】」で解説しています。
ローカルに落とす方法は後述します!
ローカル環境でPythonが使えて、容量も気にしない人はローカルでやった方が楽だワン!
Pythonを使って自動でGoogle画像を収集するための手順は以下の3ステップです。
- 画像を格納するフォルダを作成する
- Excelファイルを作成する
- 画像をExcelファイルに張り付けるプログラムを書く
その①:画像を格納するフォルダを作成する
今回は、プログラムが格納されているGoogle Colabフォルダ直下にimgフォルダを作成しています。
また、imgフォルダの中にdog_testフォルダ、dog_testフォルダの中にresizeフォルダを作っています。
Google Colab
—–put_pic_Excel.ipynb(これから作るスクリプト)
—–img
———–dog_test
—————– resize
フォルダ構成を変更してもOKですが、後述するプログラムの保存先フォルダ名が変わるので注意してください。
また、今回使用する画像は全て同じ大きさのものを使用しています。
もし、フォルダの中の画像サイズが違っており、統一したいと思っているなら「【Python】フォルダ画像を一括でサイズ変換する方法を徹底解説!【5分でできます】」の記事が参考になると思います。
その②:Excelファイルを作成する
フォルダの作成が終わったら、画像を張り付けるExcelファイルを作成しましょう。
ローカル環境で「auto_pic.xlsx」というExcelファイルを作成し、GoogleドライブにアップロードすればOKです。
その③:画像をExcelに張り付けるプログラムを書く
画像を自動でExcelに張り付けるプログラムは下記の通りです。
#ドライブをマウントする
from google.colab import drive
drive.mount('/content/drive')
補足:
上記のコマンドを実行すると、以下の画面が現れます。手順通りに操作すればOKです。
1.URLを押下
2.希望のアカウントを選択
3.ログインを押下
4.コードをコピーし、「Enter your authorization code」に入力
#カレントディレクトリに移動
%cd "/content/drive/My Drive/Google Colab"
import os
import time
import openpyxl
import datetime
from pytz import timezone
from openpyxl.drawing.image import Image
#現在時刻の表示
now = datetime.datetime.now()
jst_now = timezone('Asia/Tokyo').localize(now)
print("処理を開始します。")
print(jst_now)
#処理時間計測用
tm_start = time.time()
#Excelに挿入する画像フォルダ
new_dir_name = 'img/dog_test/resize'
#画像挿入するエクセルファイルを指定
wb = openpyxl.load_workbook('auto_pic.xlsx')
ws = wb["Sheet1"]
files = os.listdir(new_dir_name)
files_file = [f for f in files if os.path.isfile(os.path.join(new_dir_name, f))]
cnt = 1
for pic in range(len(files_file)):
#挿入する画像を指定
img = Image(new_dir_name + '/' + (files_file[pic]))
#画像挿入
ws.add_image(img, 'A' + str(cnt))
#位置調整
cnt = cnt + 10
#保存するExcel名
wb.save('auto_pic.xlsx')
tm_end = time.time()
print('------------------------------------')
print('処理が完了しました。')
total = tm_end - tm_start
total_str = f'トータル時間: {total:.1f}s({total/60:.2f}min)'
print(total_str)
実行結果:
画像の大きさによっては、エクセルシートに張り付けた際に重なる場合があります。そのときは、36行目を適切に変更することで、重なりを解消することができます。
作成したファイルをローカルに落とす方法
作成したファイルは「ファイル」→「ダウンロード」→「Microsoft Excel(.xlsx)」の順に押していけばOKです。
最後に:退屈な時間を減らしていこう
Google Colaboratoryを使って自動でフォルダにある画像をExcelに張り付ける方法を解説してきました。
頭を使わない単純作業をどれだけ減らせるかで、人生の充実度は変わってくると思います。
ちょっと大げさにも感じたかもしれませんが、要するに「楽しいことに時間を費やしたいですよね」ということです。
というわけで、これからも単純作業を減らせるようにコツコツとプログラムを書いていこうと思います。
この記事が少しでも役に立っていたらうれしいです!
それでは!
最短1分でできる!
コメント