![]() |
Excel: Zelle als "Text" formatieren
Hallo,
wie kann ich eine Excel-Zelle als "Text" formatieren? Leider finde ich im Forum nur Datumsformatierungen Schreiben tu ich so in die Excel-Datei: ![]() |
AW: Excel: Zelle als "Text" formatieren
Delphi-Quellcode:
Es gibt mehrere Möglichkeiten, probier's mal aus.excel.activesheet.cells(1,j+1).EntireColumn.NumberFormat:='@'; excel.activesheet.EntireColumn.Cells(1,2).NumberFormat:= '@'; excel.activesheet.cells(1,j+1).NumberFormat:='@'; excel.activesheet.Cells.NumberFormat := '@'; Gruß K-H |
AW: Excel: Zelle als "Text" formatieren
Hallo Helmi,
hatte mir mal eine Funktion geschrieben um immer die entsprechende Formatierung zu erhalten.
Delphi-Quellcode:
Hat bisher immer funktioniert.
function GetFieldDataType(QueryField: TField): Ansistring;
const FORMAT_GENERAL = 'General'; FORMAT_STANDARD = 'Standard'; FORMAT_TEXT = '@'; FORMAT_DEZIMAL = '0.00'; FORMAT_INTEGER = '0'; FORMAT_DATE = 'dd.mm.yyyy'; FORMAT_DATETIME = 'dd.mm.yyyy hh:mm:ss'; FORMAT_CURRENCY = '$#,##0.00_);[Red]($#,##0.00)'; FORMAT_TIME = 'hh:mm:ss'; begin //if QueryField.FieldName = 'Gesamtsumme' then ShowMessage(TMTools.FieldTypeToStr(QueryField.DataType)); case QueryField.DataType of ftUnknown: Result := FORMAT_TEXT; ftAutoInc: Result := FORMAT_INTEGER; ftString: Result := FORMAT_TEXT; ftSmallint: Result := FORMAT_DEZIMAL; ftInteger: Result := FORMAT_INTEGER; ftWord: Result := FORMAT_STANDARD; ftBoolean: Result := FORMAT_TEXT; ftFloat: Result := FORMAT_DEZIMAL; ftCurrency: Result := FORMAT_CURRENCY; ftDate: Result := FORMAT_DATE; ftDateTime: Result := FORMAT_DATETIME; ftMemo: Result := FORMAT_TEXT; ftWideMemo: Result := FORMAT_TEXT; ftBCD: Result := FORMAT_INTEGER; ftTime: Result := FORMAT_TIME; else Result := FORMAT_TEXT; end; end; Text also mit @ formatieren. Und immer daran denken, die Formatierung auszuführen bevor du die Zelle füllst. Ein Aufruf könnte dann so aussehen:
Delphi-Quellcode:
Excel.Sheets[TableName].Cells[Zeile, Spalte].NumberFormat := GetFieldDataType(SourceQuery.Fields[I]);
Excel.Sheets[TableName].Cells[Zeile, Spalte].Value := SourceQuery.Fields[I].AsString; |
AW: Excel: Zelle als "Text" formatieren
Hallo,
Danke für die Antworten. Ich habe jetzt:
Delphi-Quellcode:
.
Excel.ActiveSheet.Cells[Zeile, 3].NumberFormat := '@';
Schau ich mir dann in Excel die Formatierung der Zelle an, so ist "benutzerdefiniert" aktiv und nicht Text. Geht das nicht anders, oder fehlt noch etwas? |
AW: Excel: Zelle als "Text" formatieren
Soweit ich weiß, ist alles was nicht von Excel kommt "Benutzerdefiniert".
Aber wie Aviator schrieb "hat bisher immer funktioniert" Gruß K-H |
AW: Excel: Zelle als "Text" formatieren
bei mir leider nicht
ich übergebe einer Zelle den Text "4:" - in Excel steht dann in der Zelle "64" |
AW: Excel: Zelle als "Text" formatieren
Zitat:
Ein
Code:
schafft aber Abhilfe.
... := AnsiChar('@');
|
AW: Excel: Zelle als "Text" formatieren
Vielen Dank! :-D
Mit AnsiChar funktioniert das Ganze und im Excel wird das Format "Text" angezeigt! |
AW: Excel: Zelle als "Text" formatieren
Also der Rückgabetyp meiner Funktion ist Ansistring. Das man das @ als Char übergeben kann ist ja dann eigentlich das selbe (denke ich zumindest). :roll:
|
AW: Excel: Zelle als "Text" formatieren
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 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