Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Excel zwingen, den Inhalt als Text anzusehen (https://www.delphipraxis.net/106397-excel-zwingen-den-inhalt-als-text-anzusehen.html)

easywk 10. Jan 2008 08:54


Excel zwingen, den Inhalt als Text anzusehen
 
Moin, moin,

ich steuere Excel als OleVariant und schreibe in der Regel Strings in die Zellen. Das funktioniert prinzipiell auch ganz gut, nur leider gibt es manchmal Strings wie 3 / 4. Excel macht da leider in seiner Anzeige den 4. März von ...

Wie kann ich Excel zwingen, dass die Zelle wirklich als Text angesehen wird und Excel nicht versucht, irgendwelche Konvertierungen vorzunehmen?

Hier noch ein bisschen Code (ohne Fehlerhandling), damit ihr sehen könnt, was ich bisher mache:

Delphi-Quellcode:
var XlApp,XlSheet : OleVariant;

XlApp:=CreateOleObject('Excel.Application');
XlApp.Visible:=FALSE;
XlApp.Workbooks.Add(xlWorkSheet);
XlSheet:=XlApp.Sheets.Add;

for cnt:=1 to AnzahlZeilen do
  begin
    XlSheet.Cells[Row,Spalte].Value:=Inhalt;
    case QuellAusrichtung of
      ausSTANDARD,ausLINKS: XlSheet.Cells[Row,Spalte].HorizontalAlignment:=xlLeft;
      ausZENTRIERT       : XlSheet.Cells[Row,Spalte].HorizontalAlignment:=xlCenter;
      ausRECHTS          : XlSheet.Cells[Row,Spalte].HorizontalAlignment:=xlRight;
      end;
  end;

XlApp.Workbooks[1].SaveAs(Filename);
XlApp.DisplayAlerts:=FALSE;
XlApp.Quit;
cu
easywk

Gollum 10. Jan 2008 08:58

Re: Excel zwingen, den Inhalt als Text anzusehen
 
Hallo,

indem Du das Numberformat der Zelle auf Text einstellst:
Delphi-Quellcode:
  XlSheet.Cells[Row,Spalte].NumberFormat:='@';

tr909 10. Jan 2008 09:08

Re: Excel zwingen, den Inhalt als Text anzusehen
 
Wenn mann ein ' vor den Inhalt stellt interpretiert Excel das auch immer als Text. Weiß nur nicht ob das auch per OLE funktioniert. Sollte aber.

Gruß
tr909

easywk 10. Jan 2008 09:22

Re: Excel zwingen, den Inhalt als Text anzusehen
 
Zitat:

XlSheet.Cells[Row,Spalte].NumberFormat:='@';
Das funktioniert. Danke.

cu
easywk


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07 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