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