PythonでExcel に画像ファイルを貼り付ける目的
日常や仕事の中でExcelに画像ファイルを貼り付けて整理するといった使い方をされている方も多いと思います。画像ファイルを開いてはコピー、Excelのワークシートへ移動してペースト。。。といった具合に繰り返しの作業というのはなかなか時間がかかるものです。 今回は、Pythonを使ってExcelに画像ファイルを貼り付けて保存するコードを最低限の行を使って紹介したいと思います。
例えばこんな方にお薦め
- 最近Pythonを使い始めて、どんなことができるか試してみたい
- Excelへ画像ファイルの貼り付けの繰り返し作業に手間を感じている
前準備として、openpyxl ライブラリのインストールは済んでいるとします。
説明には下記のコードを使います。
from openpyxl.drawing.image import Image import os import openpyxl def pspe(file, col, low): img = openpyxl.drawing.image.Image(file) img.anchor = str(col) + str(low) ws.add_image(img) cd = os.getcwd() wb = openpyxl.Workbook() ws = wb.worksheets[0] ws["A1"] = "graph.png" pspe("graph.png", "A", 2) wb.save("test.xlsx") wb.close()
上記のコードを記述した.pyファイルと貼り付けたい画像ファイルを同じフォルダに置きます。ここでは、graph.png を使用します。
コードの解説をしていきます。
import openpyxl
openpyxlモジュールをインポートします。Excelを操作するのに使用します。
from openpyxl.drawing.image import Image
Excelで画像ファイルを扱うために呼び出します。
import os
osモジュールをインポートします。現在のディレクトリを取得するのに使用します。
def pspe(file, col, low):
img = openpyxl.drawing.image.Image(file)
img.anchor = str(col) + str(low)
ws.add_image(img)
画像貼り付け用の関数、pspeを定義します。1枚の画像ファイルを取り扱う場合には必須ではありませんが、複数の画像ファイルを取り扱いたい場合に重宝します。
cd = os.getcwd()
カレントディレクトリをcd変数へ取得します。
wb = openpyxl.Workbook()
pythonからエクセルワークブックを開きます。
ws = wb.worksheets[0]
開いたワークブックのワークシート1を選択します。
ws["A1"] = "graph.png"
ワークシート1のA1セルへ"graph.png"を入力してみましょう。
pspe("graph.png", "A", 2)
A2セルへ、画像ファイル"graph.png"を貼り付けます。
wb.save("test.xlsx")
画像を貼り付けたワークブックを"test.xlsx"というファイル名で保存します。
wb.close()
開いていたワークブックを閉じます。
"graph.png"ファイルがワークシート1へ貼り付けられた"text.xlsx"ができました。
今回は、Pythonを使ってExcelに画像ファイルを貼り付けてみました。応用すれば面倒なコピペから解放されると思います。