使用OpenPyxel在Excel中插入多张图片不起作用

时间:2018-09-19 21:39:14

标签: python excel openpyxl

我正在尝试将具有OpenPyxl的图像插入到已包含图像的Excel文件中(在我的情况下为不同的工作表)。如果这样做,现有图像将消失。

示例代码:

import openpyxl
from openpyxl import load_workbook

wb = openpyxl.Workbook()

ws1 = wb.create_sheet("MySheet1")
img1 = openpyxl.drawing.image.Image('test1.png')
img1.anchor = ws1.cell(row=2, column=2).coordinate
ws1.add_image(img1)
wb.save('test_output.xlsx')

wb = load_workbook(filename='test_output.xlsx')
ws2 = wb.create_sheet("MySheet2")
img2 = openpyxl.drawing.image.Image('test2.png')
img2.anchor = ws2.cell(row=2, column=2).coordinate
ws2.add_image(img2)
wb.save('test_output.xlsx')

我在这里做错什么了吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

更新:

如评论中所述,现在应该可以工作:

  

直到最近,现有文件中的图像均未保留。   为此,您需要> = 2.5.5。

文档指出较早版本:

  

openpyxl当前无法读取Excel文件中的所有可能项目   因此,如果图像和图表已经存在,则会从现有文件中丢失   以相同的名称打开并保存。

与此有关的几个错误问题(hereherehere

问题中的一个comment正在使用win32com作为一种解决方法,将带有图像的图纸复制到另一个文件中。