如何防止xlwings禁用其他插件(SQL Spreads)

0 投票
1 回答
21 浏览
提问于 2025-04-14 16:48

我有一个叫做SQL Spreads的插件,主要是用来处理和这个代码无关的工作。

但是,当我尝试运行我的xlwings Python脚本时,它总是在打开Excel工作簿的时候崩溃:

wb_output = xw.Book(output_file_path, update_links=False)

并且出现这个错误代码:

Exception has occurred: com_error
(-2146959355, 'Server execution failed', None, None)

xlwings错误

每次崩溃的时候,SQL Spreads插件也会被禁用。等我第二次运行代码时,它就能正常工作,不会再出问题。不过,每次运行脚本后,我都得重新启用SQL Spreads插件。

SQL Spreads禁用插件

我一直没法避免第一次崩溃和SQL Spreads被禁用的情况。因为SQL Spreads在打开时需要用到微软账号登录,所以我怀疑xlwings在SQL Spreads请求登录信息的时候超时了。

SQL Spreads登录提示

我该怎么做才能让xlwings不禁用我的其他插件,并且在第一次运行Python脚本时不崩溃呢?

1 个回答

0

在进一步研究这个问题后,我找到了一种解决办法。

  1. 打开一个 SQL Spreads 的 Excel 文件
  2. 通过提示框登录你的账户
  3. 在 xlwings 代码运行时保持 SQL Spreads 文件打开

这样可以避免登录弹窗打断 xlwings 代码,因为你已经登录了。我发现这个解决办法并不是完美的,有时候会导致 SQL Spreads 被禁用,但大多数情况下它是有效的。

撰写回答