pywin32 - word object reference module - automating form filling

Brendan brendandetracey at yahoo.com
Tue Jun 9 11:17:15 EDT 2009


On Jun 9, 9:54 am, Brendan <brendandetra... at yahoo.com> wrote:
> I was hoping to use pywin32 to automate some rather tedious filling in
> of Word forms. I thought the process would be analogous to dealing
> with xml documents or DOM but find myself somewhat lost in the word
> object reference manual (http://msdn.microsoft.com/en-us/library/
> bb244515.aspx) .  I was hoping to easily load all document objects
> into a list so that I could poke around, examine and experiment with
> them. So far all I have managed to do is load the page content as a
> string, not particularly helpful.
>
> Could someone please point me in the right direction?
>
> Also, help, __doc__ and dir do not return anything meaningful(to me
> anyway) or helpful. There seem to be no exposed methods or properties.
> e.g. I have a word document object:
> wd = wordapp.Documents.Open('blah.dic')
> But:>>> dir(wd)
>
> ['_ApplyTypes_', '_FlagAsMethod', '_LazyAddAttr_', '_NewEnum',
> '_Release_', '__AttrToID__', '__LazyMap__', '__call__', '__cmp__',
> '__doc__', '__getattr__', '__getitem__', '__init__', '__int__',
> '__len__', '__module__', '__nonzero__', '__repr__', '__setattr__',
> '__setitem__', '__str__', '_builtMethods_', '_enum_',
> '_find_dispatch_type_', '_get_good_object_',
> '_get_good_single_object_', '_lazydata_', '_make_method_',
> '_mapCachedItems_', '_oleobj_', '_olerepr_', '_print_details_',
> '_proc_', '_unicode_to_string_', '_username_', '_wrap_dispatch_']
>
> And:
>
> >>> print wd.__doc__
>
>     The dynamic class used as a last resort.
>     The purpose of this overriding of dynamic.CDispatch is to
> perpetuate the policy
>     of using the makepy generated wrapper Python class instead of
> dynamic.CDispatch
>     if/when possible.
>
> Furthermore:>>> help(wd)
>
> Help on instance of CDispatch in module win32com.client object:
>
> class instance(object)
>  |  instance(class[, dict])
>  |
>  |  Create an instance without calling its __init__() method.
>  |  The class must be a classic class.
>  |  If present, dict must be a dictionary or None.
>  |
>  |  Methods defined here:
>  |
>  |  __abs__(...)
>  |      x.__abs__() <==> abs(x)
>
> ~ ~ snip ~ ~
>
> |  __truediv__(...)
>  |      x.__truediv__(y) <==> x/y
>  |
>  |  __xor__(...)
>  |      x.__xor__(y) <==> x^y
>  |
>  |  next(...)
>  |      x.next() -> the next value, or raise StopIteration
>  |
>  |
> ----------------------------------------------------------------------
>  |  Data and other attributes defined here:
>  |
>  |  __new__ = <built-in method __new__ of type object at 0x1E1C74D0>
>  |      T.__new__(S, ...) -> a new object with type S, a subtype of T
>
> What gives?

Hmmm.  The VB examples in the Word Object Reference give the best idea
of how to play with Word documents. No further help required on this
although I am still curious about why the python does not return the
"real" objects and methods for the COM object.



More information about the Python-list mailing list