EhLib.Com
https://forum.ehlib.com/en/

How to Export MemTableEh to excel without DBGrid
https://forum.ehlib.com/en/viewtopic.php?f=5&t=1217
Page 1 of 1

Author:  jsm [ 27 May 2023, 07:54 ]
Post subject:  How to Export MemTableEh to excel without DBGrid

Hi, please guide me

Author:  EhLibSupport [ 02 Jun 2023, 19:54 ]
Post subject:  Re: How to Export MemTableEh to excel without DBGrid

Hello

I can suggest two ways.

1. First way. Create a temporary grid for export.

Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  Grid: TDBGridEh;
  DS: TDataSource;
  Path: String;
begin
  GetDir(0, Path);
  Path := Path + '\TestXlsFile.xlsx';

  Grid := TDBGridEh.Create(nil);
  DS := TDataSource.Create(nil);
  Grid.DataSource := DS;
  DS.DataSet := MemTableEh1;
  ExportDBGridEhToXlsx(Grid, Path, nil);
  DS.Free;
  Grid.Free;

  ShellExecute(Application.Handle, 'Open', PChar(Path), nil, nil, SW_SHOWNORMAL)
end;


2. The second way. Use the TXlsMemFileEh class.

Code:
procedure TForm1.Button2Click(Sender: TObject);
var
  xlsFile: TXlsMemFileEh;
  Path: String;
  Sheet: TXlsWorksheetEh;
  i, ci: Integer;
begin
  GetDir(0, Path);
  Path := Path + '\TestXlsFile.xlsx';
  xlsFile := TXlsMemFileEh.Create;

  Sheet := xlsFile.Workbook.Worksheets[0];

  //Export Data rows
  i := 0;
  MemTableEh1.DisableControls;
  MemTableEh1.First;
  while not MemTableEh1.Eof do
  begin
    for ci := 0 to MemTableEh1.FieldCount - 1 do
    begin
      Sheet.Cells[ci, i].Value := MemTableEh1.Fields[ci].Value;
    end;

    i := i + 1;
    MemTableEh1.Next;
  end;
  MemTableEh1.First;
  MemTableEh1.EnableControls;

  xlsFile.SaveToFile(Path);
  xlsFile.Free;

  ShellExecute(Application.Handle, 'Open', PChar(Path), nil, nil, SW_SHOWNORMAL)
end;

Page 1 of 1 All times are UTC
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/