Nach Excel schreiben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
iwl
User
Beiträge: 12
Registriert: Samstag 9. Dezember 2006, 16:11

Weiß jemand, warum am Ende mit range diese Fehlermeldung kommt,
während es mit xrange funktioniert???

Code: Alles auswählen

# -*- coding: iso-8859-1 -*- 
import win32com.client 
import os 

Fehler = False 
try: ## Excel Anwendung öffnen 
    # NOTE - these 2 lines are copied verbatim from the output 
    # of makepy.py when run with the -i parameter. 
    from win32com.client import gencache 
    gencache.EnsureModule('{00020813-0000-0000-C000-000000000046}', 0, 1, 2) 
    Excel = win32com.client.Dispatch("Excel.Application") 
    Excel.Visible = True 
except: 
    print "Fehler beim Versuch, Excel zu starten" 
    Fehler = True 

if Fehler is False: 
    wbExcel = appExcel.Workbooks.Add()
    wsExcel = wbExcel.Worksheets(1)
    Cells=wsExcel.Cells
    
    for s in range(10):
      Cells(1,s+1).Value=s
->

Traceback (most recent call last):
File "excel.py", line 22, in <module>
for s in range(10):
File "C:\Python25\lib\site-packages\win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x5.py", line 22840, in __call__
, ColumnIndex)
File "C:\Python25\lib\site-packages\win32com\client\__init__.py", line 448, in _ApplyTypes_
dispid, 0, wFlags, retType, argTypes, *args),
com_error: (-2146827864, 'OLE error 0x800a01a8', None, None)
iwl
User
Beiträge: 12
Registriert: Samstag 9. Dezember 2006, 16:11

BTW:

Code: Alles auswählen

  for x in xrange(100):
    for y in xrange(100):
       Cell(x,y).Value=x*y
dauert schon ewig lange, kann man zusehen,
weiß jemand wie man sowas vielleicht als Block schneller nach Excel bekommt?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

iwl hat geschrieben:weiß jemand wie man sowas vielleicht als Block schneller nach Excel bekommt?
Hi iwl!

Ich habe mich ein wenig gespielt, da ich demnächst auch viele Daten in eine Excel-Datei schreiben muss.

Siehe: http://www.python-forum.de/topic-10137.html

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
sunmountain
User
Beiträge: 89
Registriert: Montag 13. März 2006, 17:18

iwl hat geschrieben:

Code: Alles auswählen

  for x in xrange(100):
    for y in xrange(100):
       Cell(x,y).Value=x*y
so etwa:

Code: Alles auswählen

data = ((1,2,3),(4,5,6),(7,8,9))
Range('A1:C3') = data
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

sunmountain hat geschrieben:

Code: Alles auswählen

data = ((1,2,3),(4,5,6),(7,8,9))
Range('A1:C3') = data
Hi sunmountain!

Wer hätte das gedacht? :oops:

Das ist nicht umständlich und sehr schnell. 8)
Da habe ich mich mit meiner ODBC-Lösung doch um einiges mehr verausgabt. :?

mfg
Gerold
:-)

PS: Ich habe deine Lösung zum Beispiel hinzugefügt: http://www.python-forum.de/post-63850.html#63850
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten