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