Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 18, 2010 18:37:38

ostroglaz
От:
Зарегистрирован: 2010-01-25
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Взять уже запущенный экземпляр COM-объекта Excel.Application

Собственно, сабж :)

Если по-простому… запущен Excel 2007… надо взять экземпляр

кроме того, хотелось бы узнать, что делать, если открыто несколько рабочих книг, и по какому параметру ориентироваться :)

благодарю за внимание!



Офлайн

#2 Фев. 18, 2010 21:00:12

regall
От: Киев
Зарегистрирован: 2008-07-17
Сообщения: 1583
Репутация: +  3  -
Профиль   Отправить e-mail  

Взять уже запущенный экземпляр COM-объекта Excel.Application

Python for win32 - http://starship.python.net/~skippy/win32/Downloads.html.
А именно использовать биндинги для работы с COM-объектами.



Офлайн

#3 Фев. 18, 2010 21:10:29

ostroglaz
От:
Зарегистрирован: 2010-01-25
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Взять уже запущенный экземпляр COM-объекта Excel.Application

Супер!
Кто бы мог подумать, что надо использовать pywin32?!

А если серьёзно, можно подробнее? я где-то в доках видел, что можно использовать интерфейс IRunnable, но найти не могу…



Офлайн

#4 Фев. 19, 2010 02:02:19

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Взять уже запущенный экземпляр COM-объекта Excel.Application

ostroglaz
А если серьёзно, можно подробнее?
О создании СОМ-объектов и подключении к активным достаточно подробно написано в справке по pywin32 :-)
еще подробнее - MSDN
ostroglaz
кроме того, хотелось бы узнать, что делать, если открыто несколько рабочих книг, и по какому параметру ориентироваться
Справочник по VBA -> свойства и методы объекта Excel.Application



Офлайн

#5 Фев. 19, 2010 02:30:52

ostroglaz
От:
Зарегистрирован: 2010-01-25
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Взять уже запущенный экземпляр COM-объекта Excel.Application

pyuser
достаточно подробно написано в справке по pywin32
Можете тыкнуть пальцем, нет? Я пока что добрался только до pythoncom.connect()



Офлайн

#6 Фев. 19, 2010 03:18:54

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Взять уже запущенный экземпляр COM-объекта Excel.Application

ostroglaz
Можете тыкнуть пальцем, нет?
win32com.client.GetActiveObject



Офлайн

#7 Фев. 19, 2010 12:24:35

ostroglaz
От:
Зарегистрирован: 2010-01-25
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

Взять уже запущенный экземпляр COM-объекта Excel.Application

Да, благодарю, но сам уже нашёл, надо было сразу исходники смотреть, а не рыться в этих доках…

но тип объекта, получаемого в результате “win32com.gen_py.None.Application”, а не “win32com.gen_py.Microsoft Excel 12.0 Object Library._Application”
Благодарю за подсказку…

А как быть, если запущен не один процесс Экселя?



Отредактировано (Фев. 19, 2010 22:43:34)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version