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
相关产品推荐
相关产品推荐

