首页 > 解决方案 > 使用 OpenPyxel 在 Excel 中插入多个图像不起作用

问题描述

我正在尝试将带有 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')

我在这里做错了什么吗?

提前非常感谢。

标签: pythonexcelopenpyxl

解决方案


更新:

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

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

该文档说明了旧版本:

openpyxl 目前不会读取 Excel 文件中所有可能的项目,因此如果以相同的名称打开和保存现有文件中的图像和图表,它们将会丢失。

有几个关于这个的错误问题(这里这里这里

问题中的一条评论win32com作为一种解决方法,将带有图像的工作表复制到不同的文件中。


推荐阅读