Hello!

I want to create an Excel file through the python COM interface.
I can open the file, fill the cells, save the file.

Now I want to color single characters in the cell content.

In VBA ( see
http://stackoverflow.com/questions/7618121/excel-vba-change-color-of-certain-characters-in-a-cell)
I would do
Cell.Characters(i, 1).Font.Color = vbRed

How does that translate to Python?
mycell.Characters[x:y] does not work, nor anything else I tried.

mycell.Characters is a "win32com.gen_py.Microsoft Excel 12.0 Object 
Library.Characters instance",
but what can I do with it?

In the gen_py generated interface, the Characters class is defined as:
----8<--------------------
class Characters(DispatchBaseClass):
                CLSID = IID('{00020878-0000-0000-C000-000000000046}')
                coclass_clsid = None

                def Delete(self):
                               return self._ApplyTypes_(117, 1, (12, 0), (), 
u'Delete', None,)

                def Insert(self, String=defaultNamedNotOptArg):
                               return self._ApplyTypes_(252, 1, (12, 0), ((8, 
1),), u'Insert', None,String
                                               )

                _prop_map_get_ = {
                               # Method 'Application' returns object of type 
'Application'
                               "Application": (148, 2, (13, 0), (), 
"Application", '{00024500-0000-0000-C000-000000000046}'),
                               "Caption": (139, 2, (8, 0), (), "Caption", None),
                               "Count": (118, 2, (3, 0), (), "Count", None),
                               "Creator": (149, 2, (3, 0), (), "Creator", None),
                               # Method 'Font' returns object of type 'Font'
                               "Font": (146, 2, (9, 0), (), "Font", 
'{0002084D-0000-0000-C000-000000000046}'),
                               "Parent": (150, 2, (9, 0), (), "Parent", None),
                               "PhoneticCharacters": (1522, 2, (8, 0), (), 
"PhoneticCharacters", None),
                               "Text": (138, 2, (8, 0), (), "Text", None),
                }
                _prop_map_put_ = {
                               "Caption": ((139, LCID, 4, 0),()),
                               "PhoneticCharacters": ((1522, LCID, 4, 0),()),
                               "Text": ((138, LCID, 4, 0),()),
                }
                def __iter__(self):
                               "Return a Python iterator for this object"
                               try:
                                               ob = 
self._oleobj_.InvokeTypes(-4,LCID,3,(13, 10),())
                               except pythoncom.error:
                                               raise TypeError("This object 
does not support enumeration")
                               return win32com.client.util.Iterator(ob, None)
                #This class has Count() property - allow len(ob) to provide this
                def __len__(self):
                               return self._ApplyTypes_(*(118, 2, (3, 0), (), 
"Count", None))
                #This class has a __len__ - this is needed so 'if object:' 
always returns TRUE.
                def __nonzero__(self):
                               return True
----8<--------------------


Mit freundlichen Grüßen
Dr. Hartmut Niemann

Siemens AG
Infrastructure & Cities Sector
Rail Systems Division
Locomotives and Components
IC RL LOC EN CCI 1
Werner-von-Siemens-Str. 67
91052 Erlangen, Deutschland
Tel: +49 9131 7-34264
Fax: +49 9131 7-26254
mailto:hartmut.niem...@siemens.com

Siemens Aktiengesellschaft: Vorsitzender des Aufsichtsrats: Gerhard Cromme; 
Vorstand: Joe Kaeser, Vorsitzender; Roland Busch, Klaus Helmrich, Hermann 
Requardt, Siegfried Russwurm, Ralf P. Thomas; Sitz der Gesellschaft: Berlin und 
München, Deutschland; Registergericht: Berlin Charlottenburg, HRB 12300, 
München, HRB 6684; WEEE-Reg.-Nr. DE 23691322
_______________________________________________
python-win32 mailing list
python-win32@python.org
https://mail.python.org/mailman/listinfo/python-win32

Reply via email to