PythonでEXCELに画像を埋め込むには?
業務プログラムを作成時にEXCELへ画像を埋め込みしたい場合があります。
本記事では、PythonでEXCELを開いて画像を埋め込みする方法を紹介します。
事前準備
サンプルコード実行用にtestexcel.zipファイルを以下からダウンロードします。
ダウンロード後は以下の図のようにCドライブにtestexcelというフォルダを作成し、その中にファイルをコピーしてください。
EXCELに画像を埋め込むサンプルコード
次に、EXCELに画像を埋め込むサンプルコードを紹介します。
# pip install openpyxl
import openpyxl
from openpyxl.drawing.image import Image
#pip install pywin32
import win32com.client
def insert_image(excel_path, image_path, cell_position, image_width, image_height):
"""
指定されたExcelファイルに画像を埋め込み、画像の大きさを調整する関数。
Args:
excel_path (str): Excelファイルのパス。
image_path (str): 埋め込む画像のパス。
cell_position (str): 画像を挿入するセルの位置(例: 'A1')。
image_width (int): 画像の幅(ピクセル単位)。
image_height (int): 画像の高さ(ピクセル単位)。
Returns:
None:
"""
# Excelファイルをロード
workbook = openpyxl.load_workbook(excel_path)
# アクティブなシートを取得
sheet = workbook.active
# 画像をロード
img = Image(image_path)
# 画像のサイズを設定
img.width, img.height = image_width, image_height
# 画像を指定されたセル位置に挿入
sheet.add_image(img, cell_position)
# 変更をファイルに保存
workbook.save(excel_path)
##############################################################
# 関数のテスト
if __name__ == "__main__":
# 埋め込み先EXCELと画像ファイルの指定
excelfile = 'c:\\testexcel\\chingin_template.xlsx'
imagefile = 'c:\\testexcel\\qrcode.png'
# 画像を埋め込む
insert_image(excelfile,imagefile , 'G1', 80, 80)
# EXCELを開く ※手動で開く場合にはコメントしてください。
# Excel アプリケーションを起動
excel = win32com.client.Dispatch("Excel.Application")
# Excel を画面に表示
excel.Visible = True
# ワークブックを開く
workbook = excel.Workbooks.Open(excelfile)
サンプルを実行する前に
openpyxlとpywin32のインストールが必要ですのでインストールしていない場合には対応してください。
※画像埋め込み後のEXCELを自動で開く必要がない場合にはpywin32は不要です。
pip install openpyxl
pip install pywin32
実行結果
左図の元EXCELに右図のようにQRコード画像が埋め込みされます。
最後に
以上がPythonでEXCELへ画像を埋め込む方法です。
画像を埋め込むことによりQRコード画像やバーコードをEXCELに配置して承認行為のため書類番号を読み込ませて手入力軽減や、請求書への会社ロゴや押印が実現できます。
EXCELテンプレート帳票を作成して印刷するという内容も記事にしていますので、興味のある方はこちらも参照ください。
コメント