python - XLwings - 即使使用 kill() 方法也无法让 Excel 应用程序退出
问题描述
我已经搜索过,但似乎无法找到我的问题的答案。我希望有人能帮忙。
这是我的代码的精简版。我在单元测试TestCase
类中有它。我打开三本书,其中一本是xlsm
文件 ( wb2
),进行一些处理,然后wb2
用另一个名称保存文件并关闭所有三个工作簿。
发生的情况是所有三个工作簿都正在关闭,但仍有一个 Excel 实例处于打开状态。就像一个空壳,里面什么都没有。我搜索并找到了该kill()
方法,但这并没有杀死它(无论我使用self.xw.App().kill()
还是只是xw.App().kill())
. 此外,我打印出所有打开的应用程序并返回一个空列表。所以,我不知道剩下的这个实例是什么关于以及为什么它没有被杀死。顺便说一句,我正在使用 Excel 365。在此先感谢。
import xlwings as xw
class TestClass(unittest.TestCase):
def test_xltest(self):
#Open 3 separate workbooks
self.wb1 = xw.Book(workbook1)
self.wb2 = xw.Book(workbook2)
self.wb3 = xw.Book(workbook3)
#Do some processing here
def tearDown(self):
self.wb1.close()
self.wb2.save(self.newDirectoryPath)
self.wb2.close()
self.wb3.close()
print (xw.apps)
self.xw.App().kill()
if __name__ == "__main__":
unittest.main()
解决方案
推荐阅读
- angular - 如何在输入搜索标签中以角度显示日历日期 mm-dd-yyyy 格式?
- java - 当我在不同的 IDE 中运行 Java 代码时
- javascript - 如何在 Scolled 位置修复中心弹出 Div
- sql - 用于获取 12 月最大乘车次数的用户的 sql 命令
- javascript - 为什么useSelector里面的选择器会运行两次?
- javascript - 单击新的后如何清除以前的传单层
- c++ - 为什么while循环在c ++中跳过嵌套循环的第一次迭代的几行?
- laravel - Laravel 作为多个远程客户数据库的后端
- azure - AKS Azure 中的微服务与负载均衡器集成
- python - 如何在views.py类中添加页数而不会出错[Django]