PyWin32 - Error dispatch application - (Ajuda)

1,210 views
Skip to first unread message

richard daros

unread,
Nov 2, 2012, 1:41:24 PM11/2/12
to python...@googlegroups.com
Boa tarde,

Ainda estou fazendo testes para ver como é a melhor forma para gerar relatorios windows office, desta vez instalei uma VM com:

Windows 7 Home basic 64 bits
Office starter 2010 (não registrado algumas funções limitadas)
python-2.7.3.amd64.msi
pywin32-218.win-amd64-py2.7.exe

Estou tentando fazer funcionar o pywin32 mas até o momento não consegui e pesquisando na WEB muita gente teve o mesmo problema que eu e nenhum com uma solução.

Já passaram por isso? tem alguma dica para eu correr atraz da solução?

#teste_python.py
import win32com.client

o = win32com.client.Dispatch("Excel.Application")
o.Visible = 1
o.Workbooks.Add()
o.Cells(1,1).Value = "Hello"

#----------------------------------------------------------------------------------------

Traceback (most recent call last):
  File "teste_python.py", line 3, in <module>
    o = win32com.client.Dispatch("Excel.Application")
  File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
    dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
  File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 114, in _GetGoodDispatchAndUserName
    return (_GetGoodDispatch(IDispatch, clsctx), userName)
  File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 91, in _GetGoodDispatch
    IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
pywintypes.com_error: (-2147221005, 'Cadeia de caracteres de classe inv\xe1lida', None, None)


Obrigado.
Richard

richard daros

unread,
Nov 2, 2012, 5:07:54 PM11/2/12
to python...@googlegroups.com
Bom encontrei a resposta aqui,

O erro acontece referente a versão do office que eu tinha instalado na maquina windows,

Apos reinstalar o office tive que adicionar a lib no makepy.py

Doc de referencia:
http://docs.activestate.com/activepython/2.4/pywin32/html/com/win32com/HTML/QuickStartClientCom.html#UsingComConstants

Comando para adicionar a lib:
makepy.py -i "Microsoft Word 14.0 Object Library"

Path do win32com:
C:\Python27\Lib\site-packages\win32com\client\makepy.py

Espero que este email ajude quem tiver com problema parecido.

Att
Richard

Luciano Ramalho

unread,
Nov 3, 2012, 8:35:09 AM11/3/12
to python...@googlegroups.com
Richard, muito grato por investir o tempo de compartilhar a solução
com os colegas!

[ ]s
Luciano

2012/11/2 richard daros <richar...@gmail.com>:
> --
> ------------------------------------
> Grupo Python-Brasil
> http://www.python.org.br/wiki/AntesDePerguntar
>
> <*> Para visitar o site do grupo na web, acesse:
> http://groups.google.com/group/python-brasil
>
> <*> Para sair deste grupo, envie um e-mail para:
> python-brasi...@googlegroups.com



--
Luciano Ramalho / OFICINAS TURING
Twitter: @ramalhoorg

Autor e professor dos cursos:

* Objetos Pythonicos --> http://turing.com.br/oopy
* Python para quem sabe Python --> http://turing.com.br/ppqsp
Reply all
Reply to author
Forward
0 new messages