![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: Dataset
DBGRID export nach csv mit Titel
Hallo,
habe hier eine Routine gefunden, mit der ich die Datensätze aus einem DBGrid in csv-Datei exportieren kann. Das klappt ohne Titel auch gut. Wie kann ich die Titel übernehmen? Hier die Procedure:
Delphi-Quellcode:
Danke.
procedure TFrameArtikel.ButtonCsvExportClick(Sender: TObject);
const Delim = ';'; var S: String; I: Integer; Stream: TFileStream; begin Stream := TFileStream.Create('c:\temp\Artikel.csv', fmCreate); DatamoduleArtikel.DataModule1.IBDataSetArtikelCSV.Open; DatamoduleArtikel.DataModule1.IBDataSetArtikelCSV.Last; DatamoduleArtikel.DataModule1.IBDataSetArtikelCSV.First; while not DatamoduleArtikel.DataModule1.IBDataSetArtikelCSV.Eof do begin S := ''; for I := 0 to JvDBGridArtikelCSV.Columns.Count - 1 do S := S + TColumn(JvDBGridArtikelCSV.Columns[I]).Field.AsString + Delim; S := S + CHR(13); Stream.Write(PChar(S)^, Length(S)); DatamoduleArtikel.DataModule1.IBDataSetArtikelCSV.Next(); end; Stream.Free(); DatamoduleArtikel.DataModule1.IBDataSetArtikelCSV.Close; end; |
AW: DBGRID export nach csv mit Titel
|
AW: DBGRID export nach csv mit Titel
TStringList?
Eine für die Datei und eine für die (aktuelle) Zeile Columns durchgehen und per Add die Spaltennamen in ZeilenListe danach CommaText der ZeilenListe per Add in die CSVListe. (oder DelimitedText mit eigenem Delimiter und StrictDelimiter=True) Nur je Zeile das Selber nochmal für die Feldinhalte und am Ende noch ein SaveToFile. CHR(13) ... meintest du nicht eher CHR(10) aka #10, oder wenigstens sLineBreak? Einige Programme kommen mit #13 nicht klar. OK, das alte Nodepad kommt mit der #10 nicht klar, aber fast alle Windowsprogramme kennen #13#10. :angel: PS: Schau mal ob dein DataSet nicht sogar ein SaveToFile besitzt. [edit] Hat mir Uwe etwa zur Hälfte abgeguckt? :lol: |
AW: DBGRID export nach csv mit Titel
Oder den verlinkten Code nehmen, das Dataset und den Dateinamen übergeben und glücklich sein. Immer diese Ignoranz *grmpf*
|
AW: DBGRID export nach csv mit Titel
Zitat:
|
AW: DBGRID export nach csv mit Titel
Schaut euch mal den Source an.
Die Spalten werden über das Grid iteriert und nicht über das DataSet. Das DataSet wird nur zum Durchlaufen aller Datensätze verwendet. Aber auch ein JvDBGrid sollte eine Property für die Überschriften haben. Ich vermute mal, dass JvDBGrid.Columns[i].Title.Caption die gewünschten Überschriften liefert. |
AW: DBGRID export nach csv mit Titel
Wenn es was kosten darf kann man auch das dbadvgrid von TMS nehmen; damit bekommt man CSV-Export und auch etliche andere Exportformate (XML, Excel usw.) sehr einfach hin.
Ralf |
AW: DBGRID export nach csv mit Titel
Auch die DevExpress-Grids bieten fertige Exportfunktionen (CSV, XLS, PDF, ...) und andere Komponentensamlungen bestimmt ebenfalls.
Und es gibt natürlich spezielle Exportgeneratoren. |
AW: DBGRID export nach csv mit Titel
Das JvDBGrid hat eine Property für die Überschriften. Genau, wie bei Jasocul beschrieben. Aber wie in dieser Procedure benutzen? Irgendwie in der schon vorh. Schleife oder schon davor?
Luckner |
AW: DBGRID export nach csv mit Titel
Davor, oder willst Du bei jedem Datensatz noch einmal die Überschriften ermitteln? Kann man zwar machen, bringt aber nichts, es sei denn, das Programm läuft einem zu schnell :lol:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:29 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 by Thomas Breitkreuz