Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Excel Problem mit OleObject (https://www.delphipraxis.net/97992-excel-problem-mit-oleobject.html)

ibp 20. Aug 2007 11:22


Excel Problem mit OleObject
 
Hallo,

ich habe ein TAdvStringGrid von TMS. Das wird mit Daten aus einer DB gefüllt, u.A. existieren reelle Zahlen. Es ist möglich mit TAdvStringGrid diese Tabelle als .xls abzuspeichern.

Problem:

Beim meinem Rechner kommt wenn im Grid 17,91 steht auch 17,91 im Excel-Sheet an,das ist ja auch so gewollt :thumb: .

ABER

Bei einigen anderen Rechnern steht im Sheet 179.099.998.474.121 :shock:


Ich gehe davon aus, dass es eine Systemeinstellung ist, hat da jemand einen Tipp oder eine Idee wo, wie und warum das ensteht?

Grüße und danke schon mal...

Andidreas 20. Aug 2007 12:03

Re: Excel Problem mit OleObject
 
vielleicht liegts an der formatierung der spalte bzw. der zelle?!

probier vielleicht mal sowas:
Delphi-Quellcode:
oleExcelSheets1.Columns[i].NumberFormat := '@'
oleExcelSheets1 ist eine "OleVariant" Variable...
und das "@" zeichen weißt der spalte das zeichen format zu

ibp 20. Aug 2007 12:10

Re: Excel Problem mit OleObject
 
noch absurder...

ich kann die grid-tabelle auch als csv abspeichern. dort steht der wert mit "12,91" drin, soll ja auch.

öffnet ich die csv datei bei mir, dann steht auch in der excelausgabe das richtige drin.

öffnet der andere rechner die csv-datei, die ja richtig ist, dann steht in excel 179.099.998.474.121 drin. :shock:

mein test lag nun auf eine geänderte sprach/region einstellung. das kann es nur bedingt sein, wenn ich auf eglisch(usa) einstelle verändert er mir die anzeige in 179,099,998,474,121
aber nicht in 179.099.998.474.121 :shock:

was nun sprach zeus?

Chemiker 20. Aug 2007 13:44

Re: Excel Problem mit OleObject
 
Hallo ibp,

das einzige was mir dazu noch einfällt sind verschiedene EXCEL – Versionen. Kann es vielleicht sein, dass die Datei mit unterschiedlichem Excel – Datei – Versionen geladen/gespeichert wird?

Bis bald Chemiker

ibp 20. Aug 2007 13:50

Re: Excel Problem mit OleObject
 
@H2O2 ;-)

ja kann schon sein dass es verschiedene excel-versionen sind, das hat aber nichts mit den excel-versionen zu tun, da die dateien ja auf dem entsprechenden rechner erstellt werden.

Ich gehe davon aus, dass es eine einstellungssache ist, habe aber nur noch nicht die richtige option/ort gefunden!

iGoA 20. Aug 2007 13:50

Re: Excel Problem mit OleObject
 
hast Du mal probiert, die Zellen im englischen Format zu befüllen? Also mit "12.91" statt "12,91".

ibp 20. Aug 2007 13:53

Re: Excel Problem mit OleObject
 
wie oben beschrieben, kommen die daten aus einer db. dort steht das format fest mit dezimalzeichen ',' so werden die datan auch in das grid übernommen, egal welche einstellung das system hat.

iGoA 20. Aug 2007 14:03

Re: Excel Problem mit OleObject
 
Ich würde auf jeden Fall mal probieren, die Zahlen englischformatisch ins Grid zu packen und dann mal gucken, wie Excel damit kann.

ibp 20. Aug 2007 14:09

Re: Excel Problem mit OleObject
 
Zitat:

Zitat von iGoA
Ich würde auf jeden Fall mal probieren, die Zahlen englischformatisch ins Grid zu packen und dann mal gucken, wie Excel damit kann.

das geht leider nicht so einfach...

Chemiker 20. Aug 2007 19:34

Re: Excel Problem mit OleObject
 
Hallo ibp,

es ist so bei TAdvStringGrid das man beim Abspeichern der xls – Datei die Formatierung zwingend auf das Englische – Format einstellen muss.
Ich vermute, wenn ich das bisher richtig verstanden habe, dass die Formatierung aus dem Grid heraus nicht in Ordnung ist.

Siehe

Delphi-Quellcode:
procedure TMainForm.AdvGridExcelIO1CellFormat(Sender: TAdvStringGrid;
  const GridCol, GridRow, XlsCol, XlsRow: Integer; const Value: WideString;
  var Format: TFlxFormat);
begin
  if (GridCol = 3) then Format.Format:='$ #,##0';
end;
Zitat:

The string you need to write in "Format.Format" is a standard Excel formatting string. It is important to note that this string must be in ENGLISH format, even if your Windows or Excel is not in English.
Bis bald Chemiker


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:19 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz