Friday, 24 May 2019

Cara Export StringGrid ke Ms Excel di Delphi

Sebelumnya penulis sudah membagikan cara export DBGrid ke Ms Excell di Delphi. Sekarang cara export string grid ke Ms Excel. Silahkan ikuti langkah berikut ini.

Misalkan kita punya IDE Delphi seperti berikut.


Pertama, pada Uses tambahkan comobj. Sehingga seperti berikut:


Kedua, pada Private tambahkan scribs berikut:
XlApp, XlBook, XlSheet, XlSheets, Range,chat : Variant;
        WApp, Word : Variant;

Ketiga, pada Implementation tambahkan scribs berikut:

function RefToCell(ARow, ACol: Integer): string;
begin
  Result := Chr(Ord('A') + ACol - 1) + IntToStr(ARow);
end;

function SaveAsExcelFile(AGrid: TStringGrid; ASheetName, AFileName: string): Boolean;
const
  xlWBATWorksheet = -4167;
var
  Row, Col: Integer;
  GridPrevFile: string;
  XLApp, Sheet, Data: OLEVariant;
  i, j: Integer;
begin
  // Prepare Data
  Data := VarArrayCreate([1, AGrid.RowCount, 1, AGrid.ColCount], varVariant);
  for i := 0 to AGrid.ColCount - 1 do
    for j := 0 to AGrid.RowCount - 1 do
      Data[j + 1, i + 1] := AGrid.Cells[i, j];
  // Create Excel-OLE Object
  Result := False;
  XLApp := CreateOleObject('Excel.Application');
  try
    // Hide Excel
    XLApp.Visible := False;
    // Add new Workbook
    XLApp.Workbooks.Add(xlWBatWorkSheet);
    Sheet := XLApp.Workbooks[1].WorkSheets[1];
    Sheet.Name := ASheetName;
    // Fill up the sheet
    Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount,
      AGrid.ColCount)].Value := Data;
    // Save Excel Worksheet
    try
      XLApp.Workbooks[1].SaveAs(AFileName);
      Result := True;
    except
      // Error ?
    end;
  finally
    // Quit Excel
    if not VarIsEmpty(XLApp) then
    begin
      XLApp.DisplayAlerts := False;
      XLApp.Quit;
      XLAPP := Unassigned;
      Sheet := Unassigned;
    end;
  end;
end;

Keempat, pada tombol "Simpan", ketikkan scribs berikut:
if SaveAsExcelFile(stringGrid1, 'My Stringgrid Data', 'd:\MyExcelFile.xls') then
    ShowMessage('Data Sudah Disimpan!');

Silahkan runnung (tekan F9), isikan stringgrid Anda jika masih kosong, kemudian tekan tombol Simpan, terakhir cek hasilnya di Local D.

Catatan: Jika Anda ingin menyimpan di local C, tinggal Anda ganti "d" menjadi "c", begitu juga jika Anda ingin menyimpan dalam sebuah folder, tinggal Anda ganti alamat berwarna merah tersebut sesuaikan dengan nama / alamat folder basis data Anda.

Terima Kasih. Jangan lupa Like FansPage FB dan Subcribe.

No comments:
Write komentar

Syaharuddin. Theme images by MichaelJay. Powered by Blogger.

KOMENTAR ANDA