【Python】openpyxlによるExcelファイルへの画像貼り付け

【Python】openpyxlによるExcelファイルへの画像貼り付け プログラミング

「openpyxlで画像の貼り付け時にエラーが出る・・・」
「Pythonで自動的にExcelファイルに画像を挿入したい」

このような場合には、この記事の内容が参考になります。
この記事では、openpyxlを用いたExcelファイルへの画像貼り付けの方法を解説しています。

本記事の内容

  • Excelファイルへの画像貼り付けができない!?
  • 【サンプルコード】動作確認

それでは、上記に沿って解説していきます。

openpyxlではExcelファイルへの画像貼り付けができない!?

openpyxlで画像の貼り付け(挿入)ができない場合があります。
その場合、次のようなエラーが出ているはずです。

ImportError: You must install Pillow to fetch image objects

エラーには、解決方法が記載されています。
「画像オブジェクトを扱うPillowをインストールしなければならい」という内容になります。

Pillowとは、画像処理を行うPythonライブラリのことです。
Pillowの詳細は、次の記事で説明しています。

Pillowをインストールすれば、上記のエラーは解決します。
そもそも、デフォルトでopenpyxlは画像を扱えません。

openpyxlで画像を扱う場合には、別途Pillowのインストールが必要です。
このことについては、次の記事で説明しています。

次では、Pillowをインストールした状態で画像貼り付けの動作を確認してみましょう。

【サンプルコード】動作確認

まずは、Excelファイルに貼り付ける画像を用意します。

logo.png

この画像をExcelファイルに貼り付けるコードは、以下。

from openpyxl import Workbook
from openpyxl.drawing.image import Image

wb = Workbook()
ws = wb.active
ws['A1'] = '画像を挿入する動作確認'
# 画像生成
img = Image('logo.png')
# A2セルに画像を追加
ws.add_image(img, 'A2')
# ファイル保存
wb.save('logo.xlsx')

上記コードを実行すると、logo.xlsxが作成されます。
logo.xlsxを開くと、次のように表示されています。

動作としては、何も問題ありませんね。

以上、openpyxlによるExcelファイルへの画像貼り付けについて説明しました。

タイトルとURLをコピーしました