Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbank in Excel schreiben (https://www.delphipraxis.net/10501-datenbank-excel-schreiben.html)

eddy 25. Okt 2003 21:25

Re: Datenbank in Excel schreiben
 
Hallo JoJo,

ob über TTable oder TQuery sollte egal sein.

Mit welcher Stelle in meinem Quelltext kommst Du nicht voran?


mfg
eddy

JoJo 27. Okt 2003 08:50

Re: Datenbank in Excel schreiben
 
Hi Eddy,

also Dein Source ist ok, habe ich getestet.
Meine Probleme sind:

A: Ich habe ein TimeStamp-Format '12.10.2003 03:34:22' das wird aber NICHT so übernommen, Excel schneidet die Sekunden ab.

B: Die Routine springt irgendwann raus. (Datenbank hat ca. 30.000 Datensätze)

Mann müßte Excel wohl noch den Datentyp mit übergeben.

Ich denke das müßte so Funktionieren, doch wie wird der DatenTyp an Excel übergeben.

Var DTyp : Variant;

Code:
try
    Excel.Workbooks.Add;    // leere Tabelle wird erzeugt, 1. Blatt angewählt
    Tab1.First;
    zl := 1; // Feldbezeichner übertragen
    for i := 0 to Tab1.FieldCount - 1 do begin
      s := Tab1.FieldDefs.Items[i].Name;
      [B]DTyp := Tab1.FieldDefs.Items[i].DataType;[/B]
      Excel.Cells[1, i+1] := s;  // zeile,spalte
      [B]Excel.xxxxxx       := DTyp;[/B]    
    end;
Hmmmm, ok ich versuche mal weiterhin mit :

ExcelApplication
ExcelWorkBook
ExcelWorkSheet

obwohl ich da auch erstmal nicht weiterkomme.

Gruß JoJo :wall:

[edit=Sharky]Doppelposting gelöscht. Mfg, Sharky[/edit]

endyexcellent 27. Okt 2003 09:27

Re: Datenbank in Excel schreiben
 
Habe eine Frage:

mit
Code:
Excel.Workbooks.Add;
erzeuge ich ja eine leere Tabelle und das 1. Blatt wird angewählt.
Wie wähle ich das 2.Blatt an?
Kann ich die Blätter umbenennen?


Greetz,
enDyExcellent

eddy 27. Okt 2003 14:13

Re: Datenbank in Excel schreiben
 
Hallo JoJo,

Dein Problem unter A ist sicherlich lösbar, wenn Du in Excel Format-Benutzerdefiniert TT.MM.JJJJ hh:mm:ss:ms eingibst. (Bei den Postleitzahlen dürften nach dem Transfer auch die führenden Nullen fehlen.)

Problem B: ich hab's mal ausprobiert. Eine Datenbank mit 2780 Einträgen und 33 Feldern (nur +, N, A, L, kein Blob) je Eintrag.
Erstens dauert's ewig (ca. 8 Minuten für 2361 Sätze) und zweitens gab's irgendein OLE-Exception bei Datensatz 2361. (3xversucht, auch Neuaufbau der Indexdateien hat nicht geholfen --> nicht weiter gesucht).

Die gleiche Datei (2780 Sätze) war in 2 Sekunden übertragen und das Einlesen in Excel war Sekundensache.

Bei 30.000 Datensätzen empfehle ich Dir den Umweg über CSV zu nehmen.

mfg
eddy

eddy 27. Okt 2003 14:25

Re: Datenbank in Excel schreiben
 
Hallo endyexcellent,

was Du willst sollte gehen. Ich habe das nicht weiter ausprobiert, aber Du findest alle notwendigen Informationen unter Wie kann ich Excel mit OLE-Automation steuern?

Ich hoffe, es hilft Dir weiter.

mfg
eddy

endyexcellent 29. Okt 2003 12:52

Re: Datenbank in Excel schreiben
 
Danke eddy. Auf der Seite war ich schon. Hat mir nicht weitergeholfen. Hab's mit anderen Dokumentationen und Büchern hinbekommen.

Anderes Problem: mit
Code:
Excel.Cells.select;
Wähle ich ja den gesamten Bereich aus, sprich ich markiere alles.

Wie mache ich das rückgängig?

endyexcellent 29. Okt 2003 13:52

Re: Datenbank in Excel schreiben
 
Hat jemand eine Ahnung/Idee wie ich etwas in das zweite Worksheet schreiben kann?
Oder in das dritte?

Ich kann nur in das erste schreiben...

MrSpock 30. Okt 2003 07:57

Re: Datenbank in Excel schreiben
 
Hallo endyexcellent,

dazu musst du dir die 2. Seite als Objekt holen und darüber auf die Zellen zugreifen:

Delphi-Quellcode:
ZweiteSeite := ExcelApplication1.Worksheets.Item['Seite2'] as _Worksheet;

endyexcellent 30. Okt 2003 08:27

Re: Datenbank in Excel schreiben
 
@MrSpock

Code:
_Worksheet
kennt Delphi bei mir nicht. Muss ich irgendwelche units einfügen?

eddy 30. Okt 2003 09:09

Re: Datenbank in Excel schreiben
 
Hallo endyexcellent,

vielleicht solltest Du Dir doch den o.g. Link etwas genauer ansehen. Da ist Deine Frage beantwortet unter
der Überschrift: Wie kann ich ein Workbook öffnen

Natürlich mußt Du das noch genau auf Deinen Quelltext abstimmen.

mfg
eddy


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:06 Uhr.
Seite 3 von 4     123 4      

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 by Thomas Breitkreuz