在openpyxl中插入图像

tom*_*omc 19 python xlsx openpyxl

是否可以使用openpyxl插入图像(jpeg,png等)?

基本上我想放置一个生成的图像,下面有一个图表.

我没有在文档中看到任何内容,与代码的成熟度相比,这似乎有点缺乏.

Ant*_*hon 20

以下内容在单元格A1中插入图像.根据需要调整图像位置或自己处理PIL图像的创建并将其交给Image()

import openpyxl

wb = openpyxl.Workbook()
ws = wb.worksheets[0]
img = openpyxl.drawing.image.Image('test.jpg')
img.anchor = 'A1'
ws.add_image(img)
wb.save('out.xlsx')
Run Code Online (Sandbox Code Playgroud)

  • 截至2017年,它看起来像:`openpyxl.drawing.Image`已移至:`openpyxl.drawing.image.Image` (9认同)
  • 截至 2019 年,`img.anchor(ws.cell('A1'))` 现在是 `img.anchor = 'A1'` (2认同)

R T*_*sch 10

在当前版本的openpyxl(至少高达2.4.5)中,您必须像这样调用Image:

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

使用Anthon的例子:

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')
Run Code Online (Sandbox Code Playgroud)

  • @virtualxtc您需要在较新版本的 openpyxl 中使用 `img.anchor = 'A1'` (2认同)

pat*_*ng1 6

提供有关如何执行此操作的完整更新.此解决方案使用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')
Run Code Online (Sandbox Code Playgroud)

结果:

在此输入图像描述