XLwings - Невозможно завершить работу приложения Excel даже при использовании метода kill () - PullRequest
0 голосов
/ 28 марта 2020

Я искал и не могу найти ответ на свой вопрос. Я надеюсь, что кто-то может помочь.

Вот уменьшенная версия моего кода. У меня это в рамках модульного теста 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()
...