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

Windows11下Python调用excel2img报错OSError: failed to open clipboard求解决

解决Windows 11下excel2img调用剪贴板失败的问题

针对你遇到的OSError: failed to open clipboard错误,以下是几个针对性的解决方法:

  • 释放剪贴板占用进程
    打开任务管理器,结束可能占用剪贴板的进程(比如Excel、Word,或是第三方剪贴板工具),之后重新运行代码。也可以用命令行强制终止Excel进程:

    taskkill /f /im excel.exe
    
  • 以管理员权限运行脚本
    右键点击Python解释器或你的脚本文件,选择以管理员身份运行,权限不足可能导致无法访问系统剪贴板。

  • 降级Pillow版本
    excel2img依赖的Pillow高版本可能在Windows 11上存在剪贴板兼容问题,尝试降级到稳定版本:

    pip uninstall pillow
    pip install pillow==9.5.0
    
  • 关闭Windows剪贴板历史功能
    打开系统设置>系统>剪贴板,关闭剪贴板历史选项,重启电脑后再测试代码。该功能可能与excel2img的剪贴板操作逻辑冲突。

  • 改用win32com直接操作Excel(备选方案)
    如果上述方法无效,可以绕过excel2img,直接用win32com操作Excel复制区域为图片:

    import win32com.client as win32
    import os
    from PIL import ImageGrab
    
    # 初始化Excel应用
    excel = win32.gencache.EnsureDispatch('Excel.Application')
    excel.Visible = False
    wb = excel.Workbooks.Open(os.path.abspath("Vão 1 - Viga interna.xlsx"))
    ws = wb.Worksheets("Esforços solicitantes")
    
    # 复制指定区域为图片
    range_obj = ws.Range("A1:K48")
    range_obj.CopyPicture(Format=win32.constants.xlBitmap)
    
    # 从剪贴板获取并保存图片
    img = ImageGrab.grabclipboard()
    img.save("esforços.png")
    
    # 清理资源
    wb.Close(SaveChanges=False)
    excel.Quit()
    

内容的提问来源于stack exchange,提问作者Matheus Borges Seidel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 16:50:08