![]() |
Excel-Export NumberFormat General
Hallo #,
ich möchte eine Zelle als "Zahl" formatieren. In der Zelle steht 1 drin mit NumberFormat @, also Text, Fehlermeldung "Die NumberFormat-Eigenschaft des Range-Objektes kann nicht festgelegt werden"
Delphi-Quellcode:
Folgender Code klappt auch (kommt vom einem StringGrid Export),Format := 'General'; Sheet.Range['E1', 'E1'].NumberFormat := Format; daher auch das bisherige Text-Format
Delphi-Quellcode:
Format := '@';
Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount, AGrid.ColCount)].NumberFormat:= Format; Was ich eigentlich will ist, dass Dezimalzahlen aus dem Grid in Excel auch als Zahl verwendet exportiert werden. Laut Makro-Recorder wäre das '0.00' -> gleiche Fehlermeldung wie oben. Nehme ich '0,00', kommt zwar kein Fehler, aber es ist nicht direkt eine Zahl, die Summenbildung klappt nicht. Erst wenn ich in Excel direkt die gleiche Zahl noch einmal i die Zelle eintrage, klappt die Summe. Benutzt wird Excel 2000. Was mache ich falsch ? Heiko |
Re: Excel-Export NumberFormat General
Hallo,
diese blöde Excel !!! Habe mich gerade erinnert, dass die doch die VBA'Befehle eingedeutscht hatten. Es muss also 'Standard' heissen, statt 'General'. Damit klappt zwar die Formatierung. Danach den Value nochmal setzen und es klappt !!!
Delphi-Quellcode:
Heiko
Sheet.Range['E2','E2'].NumberFormat := 'Standard';
Sheet.Range['E2','E2'].Value := Sheet.Range['E2','E2'].Value; |
Re: Excel-Export NumberFormat General
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich habe fast das gleiche Problem. Der Excel-Export klappt wunderbar und man kann mit den Spalten auch rechnen, z.B. Summen bilden. Exportiert man jedoch in ein installiertes Excel2007 klappt das nicht mehr. Eine Summe ist dann immer 0. An jeder Zelle ist ein kleines Dreieck gesetzt und ich kann nur manuell jede einzelne Zelle in eine Zahl konvertieren, dann klappt auch das rechnen mit den Werten. (siehe Anhang) Wie gesagt, erst beim Export in ein Excel 2007, ältere Excel Versionen können mit den Werten rechnen. Könnt Ihr mir helfen? Danke, Sascha. |
Re: Excel-Export NumberFormat General
Hallo,
hast du mal General statt Standard ausprobiert ? Heiko |
Re: Excel-Export NumberFormat General
Ja, klappt aber nicht.
Ich setze die Formatierung folgendermaßen:
Delphi-Quellcode:
Dabei erhalte ich diese Fehlermeldung:
Excel_WS.Range[MyRange.StartCell,MyRange.EndCell].NumberFormat := 'General';
Zitat:
Excel2000.TExcelWorksheet |
Re: Excel-Export NumberFormat General
Habe es gelöst!
Folgende Hilfsfunktion probiert den Wert in ein Float zu konvertieren. Im Erfolgsfall wird dieser zurückgegeben, andernfalls der ursprüngliche String. Verwendet wird TryStrToFloat aus SysUtils.
Delphi-Quellcode:
Das Ergebnis der Funkion weist man dann dem entsprechenden Eintrag des OleVariant-Arrays zu, welches die Exceldaten enthält:
function StringToVariant(const SourceString : string) : Variant;
var FloatValue : Extended; begin if TryStrToFloat(SourceString, FloatValue) then Result := FloatValue else Result := SourceString; end;
Delphi-Quellcode:
Viele Grüße,
for i := 1 to spalten_liste.Count do
begin Value := StringToVariant(StringGrid.Cells[i, j]); arr[j,i] := Value; end; Sascha. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz