Registriert seit: 14. Aug 2005
1.859 Beiträge
Delphi 11 Alexandria
|
AW: Excel Zahlen werden als Zahl formatiert müssen aber angeklickt werden
22. Mai 2020, 20:55
Hallo,
wenn man das TMS – StringGrid (das SG von Delphi funktioniert genauso) in Excel übertragen will, benutze ich folgende Routine, das ist ein Extrakt sollte aber funktionieren:
Delphi-Quellcode:
procedure HPL_TMS_SG_nach_Excel;
var i, j:integer;
Text: String;
Zahl : Extended;
Datum: TDateTime;
olevEXCEL: OLEVariant;
begin
try
olevExcel := CreateOleObject('Excel.Application');
except
ShowMessage('Microsoft Excel kann nicht starten.');
exit;
end;
olevExcel.Visible := true;
olevExcel.Workbooks.add;
for i:=0 to AdvStringGrid1.rowcount-1 do
begin
for j:=0 to AdvStringGrid1.colcount-1 do
begin
Text:=AdvStringGrid1.cells[j,i];
if TryStrToFloat(Text, Zahl) then
begin
olevEXCEL.cells[i+1,j+1].Value2:= Zahl;
end
else
begin
if TryStrToDate(Text,Datum) then
begin
olevEXCEL.cells[i+1,j+1].Value2 := Datum;
end
else
begin
olevEXCEL.cells[i+1,j+1].Value2 := Text;
end;
end;
end;
end;
// Beispiel einer Formatierung
// Spalte 3 sind Zahlen und werden mit 2 Kommastellen und Euro Zeichen formatiert
// Anschließend werden die Zellen rot markiert bis auf die Überschrift.
olevEXCEL.Range['C1','C10'].NumberFormat :='_(€* #.##0,00_);_(€* (#.##0,00);_(€* ""-""??_);_(@_)';
olevEXCEL.Range['C2','C10'].Interior.Color:= CLRED;
Showmessage ('Stop!');
// Hier aus EXCEL die Datei abspeichern.
// ist nicht im Code enthalten
if NOT VarIsEmpty(olevEXCEL) then
begin
olevEXCEL.ActiveWorkBook.Saved:= TRUE;
olevEXCEL.Quit;
olevEXCEL:= Unassigned;
end;
end;
Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
|
|
Zitat
|