[Win32com]AttributeError: Property ‘Excel.Application.Visable‘ can not be set.

原因:

        后台存在win32com操作过的excel接口,可能是之前运行时代码出错遗留,或者其他原因遗留。

解决方法:

        任务处理器

        代码

今天在使用win32com设置excel属性的时候报了这个错误

联想之前都没有出现过这个问题,猜测是否后台存在win32com处理过的excel未关闭,导致占用无法更改设置,打开任务处理器一看,果不其然,之前报错时候留下的excel还在后台没有关闭,将这些excel关闭后代码无误。

代码解决法:

        该方法是我之前使用excel大量新建关闭时从网上复制的,因为新建的excel只是关闭而没有删除,实际上在后台还是存在的。

excel = DispatchEx("Excel.Application")
def close_excel_by_force(excel):                        #关闭进程
    
    # Get the window's process id's
    hwnd = excel.Hwnd
    t, p = win32process.GetWindowThreadProcessId(hwnd)
    # Ask window nicely to close  
    try:
        handle = win32api.OpenProcess(win32con.PROCESS_TERMINATE, 0, p)
        if handle:
            win32api.TerminateProcess(handle, 0)
            win32api.CloseHandle(handle)
    except:
        pass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值