Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Delphi->Excel Zahldarstellung


D. Annies - Mo 06.04.09 09:23
Titel: Delphi->Excel Zahldarstellung
Hi, Delpher,

Ich sende die Daten aus einer DBTabelle nach Excel. Klappte wunderbar, als die "Zahl" im Feld 'ISBN' 10-stellig war. Nun stelle ich Artikel für Artikel um auf 13-stellige Zahl/Anzeige und siehe da, Excel präsentiert mir etwas in der Art 9,783546 E+12.

Es ist ein Feld String[13] und ich sende es nach wie vor als string. Ich kann es in Excel formatieren als Zahl, dann habe ich wieder die richtige Anzeige. Aber das ist ja nun nicht der Sinn der Sache.

Wer hat auch solche "Erfahrungen" gemacht und kann helfen?
Gruß, Detlef


D. Annies - Mo 06.04.09 11:31

Hi, Delpher,

habe jetzt das folgende gefunden - es funzt auch:


Delphi-Quelltext
1:
2:
  excel.activesheet.pagesetup.LeftMargin   := 35// 35 = 1,2 cm; 25 = 0,9 cm
  excel.activesheet.pagesetup.RightMargin  := 10// 10 = 0,4 cm


solong, Detlef


ene - Mo 06.04.09 11:43

Hi,

hast du mal versucht in der Abfrage das Feld durch Typumwandlung entsprechend zu Formatieren? Manchmal beißen sich . und ,.


D. Annies - Mo 06.04.09 12:48

Hi, ene,

nee, das ist es leider nicht, aber ich habe jetzt ein Hochkomma davor gesetzt und nu gehts. (Die Antwort oben gilt nicht, da habe ich den Thread verwechselt)

Gruß, Detlef


ene - Mo 06.04.09 13:04

Das Hochkomma ist ja eigentlich auch nur das Auswerten als Text. Normalerweise reicht die Typumwandlung aus. In eine Vorlage möchtest du nicht exportieren?


D. Annies - Mo 06.04.09 19:57

Nein, nur in eine Tabelle.

Es sind jetzt in der linken oberen Ecke kleine Winkel zu sehen, Fehler ignorieren usw. aber der Ausdruck (Seitenansicht) ist ok ohne weitere Nacharbeit. So geht's,

Grüße aus Lübeck, Detlef


ene - Di 07.04.09 08:03

Was ist denn das für ein Datentyp in der Tabelle und formatierst du ihn in der Abfrage?


D. Annies - Di 07.04.09 10:53

Hi, Jan,

es sind String[13] und formatieren tue ich nicht, sondern sage einfach

excel.cells[n,k] := Qxy.fieldbyname('ISBN').asstring;

Recht harmlos, nicht?

Gruß, Detlef


ene - Di 07.04.09 11:05

Je nach DBMS könnte man es auch noch Versuchen mit einer Typumwandlung in der Abfrage. Wenn du so wie so schon in dem Excelobjekt arbeitest, kannst du auch einfach mit excel.Column('A').NumberFormat:= '@' arbeiten. Den 1 Zeiler vor dem Einfügen sollten man verschmerzen können. Oder halt mit einer xlt arbeiten.


D. Annies - Di 07.04.09 11:08

Hi, Jan, ick probier dat mal, Detlef