「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ファイルへの画像貼り付けについて説明しました。