2012-06-04 88 views
7

openpyxlを使って画像(jpeg、pngなど)を挿入することはできますか?openpyxlに画像を挿入する

基本的に、生成された画像の下にグラフを配置したいと考えています。

ドキュメントに何も表示されていませんが、コードの完成度に比べると少し不足しているようです。

答えて

8

以下は、セルA1に画像を挿入します。 Image()

import openpyxl 

wb = openpyxl.Workbook() 
ws = wb.worksheets[0] 
img = openpyxl.drawing.Image('test.jpg') 
img.anchor(ws.cell('A1')) 
ws.add_image(img) 
wb.save('out.xlsx') 
+0

はGIFファイルはサポートされていますか? – user299709

+0

@ user299709もちろん。 PILがサポートするフォーマットのリストを見つけるのが難しいですか? – Anthon

+1

私はXlsxwriterを使用しています。これはgifイメージの埋め込みをサポートしていないので、openpyxlがそうしているのだろうと思います。 – user299709

6

に(少なくとも2.4.5まで)openpyxlの現在のバージョンでは、このような画像を呼び出すために持っていることを、あなたのニーズに画像の位置を調整するかPILイメージの作成を扱う、自分自身をして手:これを行う方法の完全な更新を提供

import openpyxl 

wb = openpyxl.Workbook() 
ws = wb.worksheets[0] 
img = openpyxl.drawing.image.Image('test.jpg') 
img.anchor(ws.cell('A1')) 
ws.add_image(img) 
wb.save('out.xlsx') 
2

:Anthonのの例を使用して

img = openpyxl.drawing.image.Image('test.jpg')

。このソリューションでは、openpyxlバージョン2.4.5を使用します。

ローカルのディレクトリにイメージをダウンロードし、既存のブックを開いてイメージを保存して保存しました。

import openpyxl 
from openpyxl import load_workbook 
from openpyxl import Workbook 
from openpyxl.drawing.image import Image 
from openpyxl.utils import coordinate_from_string 

openpyxl_version = openpyxl.__version__ 
print(openpyxl_version) #to see what version I'm running 

# downloaded a .png to local directory manually from 
# "https://www.python.org/static/opengraph-icon-200x200.png" 

#change to the location and name of your image 
png_loc = r'c:\users\me\opengraph-icon-200x200.png' 

# test.xlsx already exists in my current directory 

wb = load_workbook('test.xlsx') 
ws = wb.active 
my_png = openpyxl.drawing.image.Image(png_loc) 
ws.add_image(my_png, 'B3') 
wb.save('test.xlsx') 

結果:

enter image description here