首页 > 解决方案 > 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()

标签: pythonexcelxlwings

解决方案


推荐阅读