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

如何避免xlwings禁用SQL Spreads加载项并解决首次运行崩溃问题

解决xlwings打开Excel时SQL Spreads加载项导致崩溃的问题

以下是几个可行的解决思路:

  • 临时禁用指定加载项再恢复
    启动Excel时先关闭SQL Spreads加载项,完成脚本操作后再重新启用,避免登录弹窗阻塞服务启动:

    import xlwings as xw
    
    # 启动Excel实例,不自动新建工作簿
    app = xw.App(visible=True, add_book=False)
    # 找到SQL Spreads加载项并禁用
    for addin in app.api.AddIns:
        # 替换为Excel加载项列表中显示的SQL Spreads准确名称
        if addin.Name == "SQL Spreads":
            addin.Installed = False
    
    # 正常打开目标工作簿
    wb_output = xw.Book(output_file_path, update_links=False)
    
    # 脚本操作完成后,恢复加载项(如果后续需要手动使用)
    for addin in app.api.AddIns:
        if addin.Name == "SQL Spreads":
            addin.Installed = True
    
    # 后续保存、退出操作
    wb_output.save()
    app.quit()
    
  • 提前完成SQL Spreads登录并记住状态
    手动打开Excel,完成SQL Spreads的Microsoft账户登录,勾选「记住我」选项后关闭Excel。下次通过xlwings启动时,加载项不会弹出登录窗口,也就不会阻塞服务启动。

  • 调整COM超时时间
    给SQL Spreads足够的启动/登录时间,修改xlwings连接Excel的超时设置:

    import xlwings as xw
    import pythoncom
    
    # 初始化COM并设置30秒超时(可根据实际情况调整)
    pythoncom.CoInitializeEx(pythoncom.COINIT_MULTITHREADED)
    pythoncom.CoSetTimeout(30000)
    
    # 打开工作簿
    wb_output = xw.Book(output_file_path, update_links=False)
    
  • 无加载项模式启动Excel
    如果脚本运行不需要用到SQL Spreads,直接以禁用所有加载项的模式启动Excel:

    import xlwings as xw
    
    # 启动Excel时禁用所有加载项
    app = xw.App(visible=True, add_book=False, options={"addins": False})
    wb_output = xw.Book(output_file_path, update_links=False)
    
    # 完成操作后退出
    wb_output.save()
    app.quit()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 02:20:13