2012-06-04 17 views
7

Openpyxl kullanarak bir görüntü (jpeg, png, vb.) Yerleştirmek mümkün mü?Resimde görün openpyxl

Temel olarak, oluşturulmuş bir resmin altına bir grafik yerleştirmek istiyorum.

Belgede, kodun olgunluğuna kıyasla biraz eksik gibi görünen hiçbir şey göremiyorum.

cevap

8

Aşağıdakiler A1 hücresine bir görüntü ekler. ihtiyaçlarınıza görüntü konumunu ayarla veya PIL görüntünün kendiniz oluşturulmasını işleyebilir ve böyle Görüntü aramak zorunda (en azından 2.4.5 kadar) openpyxl güncel sürümlerinde 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 dosyaları desteklenir? – user299709

+0

@ user299709 Elbette. PIL'in desteklediği formatların listesini bulmakta zorlandınız mı? – Anthon

+1

Xlsxwriter kullanıyorum ve bir gif görüntünün gömülmesini desteklemiyor, bu yüzden openpyxl'in yapıp yapmadığını merak ediyorum. – user299709

6

o el:

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

Anthon örneğini kullanma: Bu nasıl yapılacağı konusunda tam bir güncelleştirme sağlanması

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

. Bu çözüm openpyxl 2.4.5 sürümünü kullanır.

Yerel dizine bir görüntü indirdim, var olan bir çalışma kitabını açtım ve eklenen görüntü ile birlikte kaydettim.

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') 

Sonuçlar:

enter image description here