AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Suche Datensenitive ExportToExcel-Funktion
Thema durchsuchen
Ansicht
Themen-Optionen

Suche Datensenitive ExportToExcel-Funktion

Ein Thema von Jumpy · begonnen am 3. Jul 2012 · letzter Beitrag vom 4. Jul 2012
Antwort Antwort
Seite 1 von 2  1 2      
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#1

Suche Datensenitive ExportToExcel-Funktion

  Alt 3. Jul 2012, 09:47
Datenbank: Oracle • Version: 10g • Zugriff über: ADO+ODBC
Hallo,

ich hab eine Funktion geschrieben, die Inhalte einer ADO-Query nach Excel exportiert via OLE usw. Beispiele dafür hab ich hier einige gefunden und mich daran orientiert. Knackstelle ist beim Schreiben in eine Excel-Zelle (sinngemäß):

Code:
while not query.EOF do
  begin
  for j=0 to query.Fields.Count-1 do
    Excel.Workbook.Worksheet.Cells[i+1,j+1].value=query.Fields[j].AsString;
  Inc(i);
  query.Next;
  end;
Problem ist das Excel diese Daten fröhlich umformatiert. Beispiel ein String mit Personalnummer 001234. Excel schneidet die führenden Nullen ab und interpretiert das als Zahl 1234.
Double oder Currency Werte bekommen in Excel amerikanische Zahlenformate (da wohl die Daten so in der DB sind) usw. usw.

Hat jemand vllt. eine Funktion, die das abfängt und z.B. nach den Datentypen der Query guckt und dann entsprechend irgendwie reagiert?
Ralph
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

AW: Suche Datensenitive ExportToExcel-Funktion

  Alt 3. Jul 2012, 10:14
Du könntest das Property NumberFormat (aus Interface Range) setzen.
Für einen String ist das NumberFormat = '@'.
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Suche Datensenitive ExportToExcel-Funktion

  Alt 3. Jul 2012, 10:18
Delphi-Quellcode:
if forcestring then
      excel.Activesheet.Cells.NumberFormat := '@';
Das funktioniert für alle Felder,
eine andere Möglichkeit wäre
.Cells(x,y):=''''+MeineDaten; oder
.Cells(x,y):='"'+MeineDaten; Hierbei hat Excel aber schon mal Schluckauf bekommen, sprich, doch wieder falsch formatiert.

Gruß
K-H

P.S. ist nicht auf meinem Mist gewachsen, da hat es vor 2(?)Jahren schon einmal einen Thread zu gegeben.
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: Suche Datensenitive ExportToExcel-Funktion

  Alt 3. Jul 2012, 10:31
Ich hatte da auch schon an ein =CHR(39)+Query....AsString gedacht.

shmias Tip muss ich auch mal ausprobieren. Dazu vllt. beim Schreiben der Headline auch mal auf die Datentypen der Felder gucken und die Excel-Spalten entsprechend vorformatieren. Teste ich gleich morgen mal, muss jetzt erstmal das Schulzeugniss abholen, juhu (erstmal) nie wieder Schule.
Ralph
  Mit Zitat antworten Zitat
Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#5

AW: Suche Datensenitive ExportToExcel-Funktion

  Alt 3. Jul 2012, 10:48
Das man per EXCEL direkt an aus einer DB Daten lesen kann, ist bekannt?
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Suche Datensenitive ExportToExcel-Funktion

  Alt 3. Jul 2012, 11:17
Das man per EXCEL direkt an aus einer DB Daten lesen kann, ist bekannt?
Nichts für ungut, aber das ist so als würdest Du vorschlagen mit dem Fahrrad von Hamburg nach Lübeck zu fahren. Natürlich geht das, aber alleine die 64kSatzgrenze ist da schon ein Hindernis. Und dann zwickt es hier und da. Das sind zumindestens meine Erfahrungen mit älteren Excel-Versionen.

Und Du schleppst immer die Datenabfrage in Deiner Excel-Datei mit Dir herum. Gebraucht wird die Datei aber nur als Datencontainer.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#7

AW: Suche Datensenitive ExportToExcel-Funktion

  Alt 3. Jul 2012, 11:29
Das man per EXCEL direkt an aus einer DB Daten lesen kann, ist bekannt?
Nichts für ungut, aber das ist so als würdest Du vorschlagen mit dem Fahrrad von Hamburg nach Lübeck zu fahren. Natürlich geht das, aber alleine die 64kSatzgrenze ist da schon ein Hindernis.
Ich verwende keine Datenmengen > 64k für Reports, weil die keiner lesen kann...
Zitat:
Und dann zwickt es hier und da. Das sind zumindestens meine Erfahrungen mit älteren Excel-Versionen.
Erfahrungen von früher sind aber eher Erinnerungen. Frisch das doch mal auf.
Zitat:
Und Du schleppst immer die Datenabfrage in Deiner Excel-Datei mit Dir herum. Gebraucht wird die Datei aber nur als Datencontainer.
Schlimm?

Übrigens: EXCEL + OLE = Schnecke (vs. 'Fahrrad')

Ich erstelle kleine Reporttemplates mit EXCEL und wenn der DAU doppelklickt, hat er alles, was er braucht. Immer aktuell, ohne sich selbst drum zu kümmern. Das ist dann kein Fahrrad, sondern eher ein Luxusdoppeldecker mit komplettem Innenausbau, Dusche, HiFi-Anlage, Küche und Butler. Nur die Geschwindigkeit... nun ja, Tempo 80. Aber der DAU hat Zeit. Und ich auch, weil ich mir keinen abgebrochen habe, seinem Wunsch nachzukommen.

Will ich EXCEL-Reports aus einer Anwendung heraus erstellen, die auch ohne Live-DB Anbindung funktioniert, verwende ich Komponenten von Axolot-Data oder DevExpress. Damit ist die Formatierung gegessen.

Aber das ist alles OT (Sry).
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: Suche Datensenitive ExportToExcel-Funktion

  Alt 3. Jul 2012, 11:59
Aber das ist alles OT (Sry).
@Iwo Asnet: Ist es nicht! Sondern ein Hinweis, wie man effektiv arbeiten kann. Danke für deine tollen Tipps (ich mache es ähnlich, für z.B. Statistiken + DAUs --> einfach unschlagbar!)
  Mit Zitat antworten Zitat
Iwo Asnet

Registriert seit: 11. Jun 2011
313 Beiträge
 
#9

AW: Suche Datensenitive ExportToExcel-Funktion

  Alt 3. Jul 2012, 13:02
Aber das ist alles OT (Sry).
@Iwo Asnet: Ist es nicht!
Na ja. Die Frage ging eher in Richtung "Formatierung mit OL(L)E EXCEL"
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: Suche Datensenitive ExportToExcel-Funktion

  Alt 3. Jul 2012, 13:05
Na ja. Die Frage ging eher in Richtung "Formatierung mit OL(L)E EXCEL"
Ich weiß, aber man kann ja auch mal über den Tellerrand schauen und deshalb fand ich Deinen Hinweis trotzdem sinnvoll. Dein Wegducken am Ende war nicht nötig und das wollte ich nochmal zum Ausdruck bringen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 Uhr.
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