Hallo,
trotz intensiver suche habe ich noch keine Lösung für folgendes Problem gefunden:
Ich möchte eine Zahl, die ich aus einem Textfile auslese, als Text formatiert in Excel einlesen, da Excel die Zahl rundet, wenn sie aus mehr als 15 Stellen besteht. Mein Excel-File wird immer neu erstellt, so kann ich die Spalte nicht vorher formatieren.Der Aufruf
for line in lines:
xlApp.ActiveSheet.Cells(x,1).Value = "%s" % str(line[10:40])
x += 1
bringt leider nichts. Die Zahlen werden als Zahl behandelt und gerundet in Excel umgewandelt.
Ich bin für jeden Tip oder einen Link dankbar.
walker
Zahl als Text in Excel importieren
-
- User
- Beiträge: 670
- Registriert: Sonntag 15. Januar 2006, 18:42
- Wohnort: Celle
- Kontaktdaten:
Excel kennt den Unterschied zwischen "Zahl" und "Textfeldern" nicht, zumindest nicht im COM-Interface. Alles wird als string übergeben.
Setz mal das Format der Zelle auf Zeichenkette, und es sollte tun. Das kannst Du direkt in Excel machen, oder aber auch über COM, wobei ich nicht weiß wie man letzteres macht.
--- Heiko.
Setz mal das Format der Zelle auf Zeichenkette, und es sollte tun. Das kannst Du direkt in Excel machen, oder aber auch über COM, wobei ich nicht weiß wie man letzteres macht.
--- Heiko.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi walker!walker hat geschrieben:for line in lines:
xlApp.ActiveSheet.Cells(x,1).Value = "%s" % str(line[10:40])
x += 1
Kurze Rede -- damit ist es für uns leichter...: Codehighlighting
mfg
Gerold

Zuletzt geändert von gerold am Donnerstag 26. Januar 2006, 13:38, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi walker!walker hat geschrieben: Ich möchte eine Zahl, die ich aus einem Textfile auslese, als Text formatiert in Excel einlesen
Vielleicht hilft dir das bereits:
Code: Alles auswählen
for line in lines:
xlApp.ActiveSheet.Cells(x,1).Value = '="%s"' % str(line[10:40])
x += 1
Code: Alles auswählen
for line in lines:
xlApp.ActiveSheet.Cells(x,1).Formula = '="%s"' % str(line[10:40])
x += 1
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Hallo walker,
bei der manuellen Eingabe von Zahlen in Excel, die Text sein sollen, gibt man ein ' vor der Zahl ein. Das muesste auch im Programm klappen; also:
Die Leerzeichen wurden nur der Deutlichkeit halber eingefuegt.
Gruss, Helmut
bei der manuellen Eingabe von Zahlen in Excel, die Text sein sollen, gibt man ein ' vor der Zahl ein. Das muesste auch im Programm klappen; also:
Code: Alles auswählen
xlApp.ActiveSheet.Cells(x,1).Value = " ' %s" % str(line[10:40])
Gruss, Helmut