2013-10-11 3 views
2

Я пытаюсь использовать COM/pywin32 для создания автономного и невидимого процесса Excel, который отличается от текущего в настоящее время.Создайте новый процесс Excel с помощью COM (pywin32)

Если я использую код ниже, когда окно Excel уже открыто, оно сделает прежнее невидимым. Я полагаю, это потому, что он просто обращается к тому же процессу.

from win32com.client import Dispatch 
excel = Dispatch('Excel.Application') 
excel.Visible = False 
excel.WorkBooks.Open('C:/someFile.xls') 

Причина мне это нужно, потому что я хотел бы, чтобы очистить другой файл Excel в фоновом режиме, не оказывая влияния на текущую работу. Кроме того, я не знаю, как только закрыть один из процессов.

Если вы собираетесь предложить новую библиотеку, я также хотел бы знать, как ее обрабатывать в COM.

ответ

4
excel = win32.DispatchEx('Excel.Application') 

также, если вы тусклый манипулировать Excel файлы попробовать

+0

Работал как шарм! Спасибо. – TimY

+0

Небольшое предупреждение о DispatchEx: в то время как это создает новый процесс Excel, он не гарантирует, что процесс остается изолированным. Например: если вы открываете файл excel через проводник Windows, все же возможно, что это приведет к повторному использованию процесса, который вы открыли с помощью DispatchEx. AFAIK, нет реального способа предотвратить это. – Steven

Смежные вопросы