Einzelnen Beitrag anzeigen

Benutzerbild von eddy
eddy

Registriert seit: 3. Jan 2003
Ort: Sachsen
573 Beiträge
 
Delphi 5 Professional
 
#12

Re: Datenbank in Excel schreiben

  Alt 22. Okt 2003, 09:03
Hallo endyexcellent,

direkt in eine Excel-Tabelle habe ich auch noch nicht geschrieben, aber vielleicht hilft Dir der Umweg über einen Export Deiner Datenbank als CSV-Datei weiter.
Code:
procedure TFBrowser.ExportalsExcelCSVDatei1Click(Sender: TObject);
var
  i : byte;
begin
  QExp1.DatabaseName := Tab1.DatabaseName;
  i := Pos(ExtractFileExt(Tab1.TableName), Tab1.TableName);
  QExp1.ExportFile := AppBkSp(Tab1.DatabaseName) + copy(Tab1.TableName,1, i) + 'CSV';
  QExp1.SQL.Clear;
  QExp1.SQL.Add('Select * From ' + Tab1.TableName);
  QExp1.Active := true;
  QExp1.ExportAsCsv;
  QExp1.Active := false;
end;
Die nachfolgende Unit ist von Specialwork und findest Du hier: paradox-daten als csv speichern

Code:
unit QueryExport;

interface

uses
  Windows, Messages, SysUtils, Classes, DB, DBTables;

type
  TQueryExport = class(TQuery)
  private
    { Private-Deklarationen }
    fExportFile: String;
    fSeperator: String;
  protected
    { Protected-Deklarationen }
  public
    { Public-Deklarationen }
    procedure ExportAsCsv;
  published
    { Published-Deklarationen }
    property ExportFile: String read fExportFile write fExportFile;
    property Seperator: String read fSeperator write fSeperator;
  end;

procedure Register;

implementation

procedure Register;
begin
  RegisterComponents('Beispiele', [TQueryExport]);
//  RegisterComponents('Specialwork Database', [TQueryExport]);
end;

procedure TQueryExport.ExportAsCsv;
var
  ExportedStrings: TStringList;
  Y: Integer;
  CurrentDataset: String;
begin
  ExportedStrings:=TStringList.Create;
  try
    try
      if Active then begin
        while not Eof do begin
          CurrentDataset:='';
          for Y:=0 to Fields.Count-1 do begin
            CurrentDataset := CurrentDataset + Fields[y].AsString;
            CurrentDataset := CurrentDataset + Seperator;
          end;
          ExportedStrings.Add(CurrentDataset);
          Next;
        end;
      end;
      ExportedStrings.SaveToFile(ExportFile);
    except
      on E: Exception do begin
        OutputDebugString(PChar(E.Message));
      end;
    end;
  finally
    ExportedStrings.Free;
  end;
end;

end.
Ist getestet und funktioniert.

mfg
eddy
  Mit Zitat antworten Zitat