Python(Openpyxl) Excelに複数画像を挿入: 画像リサイズ方法も!

python-Excelに図形挿入 Python

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】エクセルを自動処理する方法まとめ
 

【Python】エクセル処理を自動化:超便利55選
...

 

「Python 1年生 体験してわかる!会話でまなべる!」

初めての方でも安心して取り組めるように丁寧に解説
簡単なサンプルを作りながら、対話形式でプログラミングまで紹介
人工知能の導入としてもオススメの1冊です!