Pythonで、Excelに1枚、または複数の画像挿入する方法をご紹介します。
Excelに画像を挿入する
以下のコードを実行すると、エクセルファイルに自動で画像を差し込みます。
import openpyxl
from openpyxl.drawing.image import Image
#画像挿入するエクセルファイルを指定
wb = openpyxl.load_workbook('C:/Users/xxx/Desktop/test/example.xlsx')
ws = wb["Sheet1"]
#挿入する画像を指定
img = Image('C:/Users/xxx/Desktop/test/azarashi.png')
#画像挿入
ws.add_image(img, 'A1')
#別名保存
wb.save('C:/Users/xxx/Desktop/test/example画像挿入.xlsx')
コード実行前
あらかじめ以下を準備します。
・画像を挿入するExcelファイル
・画像ファイル
コード実行後
エクセルファイルを別名保存します。
エクセルファイルの「Sheet1」の指定セルから、画像を挿入します。
Excelに複数画像を挿入する
以下のプログラムを実行すると、エクセルに画像をまとめて挿入します。
import openpyxl
from openpyxl.drawing.image import Image
import os
#画像挿入するエクセルファイルを指定
wb = openpyxl.load_workbook('C:/Users/admin/Desktop/テスト/test.xlsx')
ws = wb["Sheet1"]
#貼り付け開始セル
Mycell = 1
#フォルダ内にあるファイル取得
files = os.listdir("C:/Users/admin/Desktop/テスト")
mypath = "C:/Users/admin/Desktop/テスト/"
#ファイルをループ
for filename in files:
#pngファイルだったら
if filename[-3:]=="png":
#挿入する画像
img = Image(mypath + filename)
#リサイズ
img.width = 80
img.height = 80
#指定位置に画像挿入
ws.add_image(img, 'B'+ str(Mycell))
#次の貼り付け開始セル
Mycell = Mycell+5
#別名保存
wb.save('C:/Users/admin/Desktop/テスト/画像挿入.xlsx')
コード実行前
あらかじめ以下を準備します。
・画像を挿入するExcelファイル
・画像ファイル
コード実行後
[wb] で指定したエクセルファイルが別名で保存されます。
エクセルファイルの「Sheet1」の指定セルから、複数の画像を挿入していきます。
1つの画像を貼り付けたあと、次の画像は5個下のセルから貼り付けします。
Excelにリサイズした画像を挿入
以下のプログラミングを実行すると、エクセルにサイズ変更をした画像を差し込みます。
import openpyxl
from openpyxl.drawing.image import Image
#画像挿入するエクセルファイルを指定
wb = openpyxl.load_workbook('C:/Users/admin/Desktop/テスト/test.xlsx')
ws = wb["Sheet1"]
#挿入する画像パス
img = Image('C:/Users/admin/Desktop/テスト/object.png')
#リサイズ
img.width = 50
img.height = 50
#画像挿入
ws.add_image(img, 'B2')
#別名保存
wb.save('C:/Users/admin/Desktop/テスト/画像挿入.xlsx')
コード実行前
あらかじめ画像ファイルを準備します。
コード実行後
[wb] で指定したエクセルファイルが別名で保存されます。
エクセルファイルの「Sheet1」の指定セルから、画像を挿入します。
画像サイズを小さくして、エクセルに貼り付けることができました!
動作環境
Python 3.7.4
openpyxl 3.0.5
この記事がお役に立ちますと幸いです。
【Python】エクセル処理を自動化:超便利55選
...
「Python 1年生 体験してわかる!会話でまなべる!」
初めての方でも安心して取り組めるように丁寧に解説
簡単なサンプルを作りながら、対話形式でプログラミングまで紹介
人工知能の導入としてもオススメの1冊です!
リンク