You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将外部工作簿中的图片插入现有工作簿的指定工作表?

解决Excel工作簿间图片迁移与工作表合并问题

针对你的需求,推荐使用openpyxl完成操作,下面是具体解决步骤:

1. 修复openpyxl读取图片的报错问题

你遇到的IOError: cannot identify image file,是因为直接读取工作表图片对象时没有正确解析二进制数据。可以通过提取图片的数据流来解决:

from openpyxl import load_workbook
from openpyxl.drawing.image import Image
from io import BytesIO

# 读取file2.xlsx并提取Sheet1中的图片
wb_source = load_workbook('file2.xlsx')
ws_source = wb_source['Sheet1']

# 提取嵌入式图片(这里取第一张,多图片可循环处理)
target_img = None
for img in ws_source._images:
    # 将图片转为字节流
    img_stream = BytesIO(img.image)
    target_img = Image(img_stream)
    break

wb_source.close()

2. 将图片插入到file1.xlsx的Sheet3中

读取目标工作簿,将图片插入到指定位置:

# 读取file1.xlsx的Sheet3
wb_target = load_workbook('file1.xlsx')
ws_target = wb_target['Sheet3']

# 插入图片到数据旁(示例位置为D1,可根据你的数据范围调整)
ws_target.add_image(target_img, 'D1')

# 保存修改后的工作簿(建议另存为新文件,避免覆盖原文件)
wb_target.save('file1_merged.xlsx')
wb_target.close()

补充说明

  • 关于xlsxwriter:该库仅支持创建新工作簿,无法修改现有文件,因此确实不适合你的场景。
  • 如果仍有图片识别问题:可以先手动将file2.xlsx Sheet1中的图片导出为本地PNG/JPG文件,再通过Image('本地图片路径')直接读取插入。

内容的提问来源于stack exchange,提问作者Anna Yerkanyan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 18:13:09