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

openpyxl图片处理异常:原有图片丢失及添加图片报错咨询

问题解决办法

一、解决添加图片时的ImportError错误

虽然你已安装Pillow,但仍报错,大概率是环境或版本问题,按以下步骤排查:

  • 确认Pillow安装在当前脚本使用的虚拟环境中:执行pip install pillow(注意包名是小写的pillow),你报错路径指向D:\temp\test\lib\site-packages,说明脚本用的是虚拟环境,需在该环境内完成安装。
  • 升级openpyxl到最新版本:旧版openpyxl对Pillow的检测逻辑存在缺陷,执行pip install --upgrade openpyxl即可修复。
  • 手动验证并导入PIL:在脚本开头添加from PIL import Image,若该语句无报错,说明Pillow可用,此时openpyxl的图片模块应能正常检测到。如果仍有问题,可手动显式导入PILImage:
    from PIL import Image as PILImage
    # 后续执行你的原有代码
    xlsx = openpyxl.load_workbook('PlanilhaComProjetoDoUsuario.xlsx')
    ws = xlsx['Identificação']
    img = openpyxl.drawing.image.Image('reflorestasp.png')
    img.anchor('A1')
    ws.add_image(img)
    

二、解决打开保存后原有图片丢失的问题

openpyxl依赖Pillow处理图片的读取与保存,且旧版本或未正确加载资源会导致图片丢失:

  • 确保已正确安装Pillow(完成第一个问题的修复后),这是openpyxl处理图片的必要前提。
  • 使用最新版openpyxl加载工作簿:openpyxl需借助Pillow读取嵌入图片,新版本对图片的兼容性更好,示例代码:
    from openpyxl import load_workbook
    # 加载工作簿(需确保Pillow已安装)
    wb = load_workbook('你的带图片工作表.xlsx')
    # 直接保存即可保留图片
    wb.save('保存后的工作表.xlsx')
    
  • 注意:若图片是通过Excel特殊方式嵌入(如外部链接而非本地嵌入、旧格式图片),openpyxl可能无法完全支持,建议确认图片为标准嵌入格式。

内容的提问来源于stack exchange,提问作者Mauro Assis

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 07:02:47