保存DBGRID数据到EXCEL文件中

 对excel的读写: 
unit UMain; 

interface 

uses 
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 
Db, DBTables, StdCtrls, Grids, DBGrids,Excel97,Comctrls,OleCtnrs,ComObj; 

type 
TForm1 = class(TForm) 
DBGrid1: TDBGrid; 
Button1: TButton; 
Button2: TButton; 
DataSource1: TDataSource; 
Table1: TTable; 
procedure Button1Click(Sender: TObject); 
procedure Button2Click(Sender: TObject); 
procedure FormClose(Sender: TObject; var Action: TCloseAction); 
private 
{ Private declarations } 
public 
XlsApp,XlsSheet,XlsWBk : Variant; 
{ Public declarations } 
end

var 
Form1: TForm1; 

implementation 

{$R *.DFM} 

procedure TForm1.Button1Click(Sender: TObject); 
var 
I,J : integer; 
begin 
if VarIsEmpty(XlsApp) then 
XlsApp := CreateOleObject('Excel.Application'); 

XLsApp.Workbooks.Add; 
XlsSheet := XLsApp.Worksheets['Sheet1']; 

for I := 0 to Table1.Fields.Count - 1 do 
begin 
XlsSheet.Cells[3,I + 1] := dbgrid1.Columns[I].Title.Caption; 
end

Table1.first; 
for J := 0 to Table1.RecordCount - 1 do 
begin 
for I := 0 to Table1.Fields.Count - 1 do 
begin 
XlsSheet.Cells[J + 4,I + 1] := Table1.Fields[I].AsString; 
end
Table1.Next; 
end

XlsApp.Visible := true
end

procedure TForm1.Button2Click(Sender: TObject); 
var 
I,J : integer; 
TxtFile : TextFile; 
TmpString : String
begin 
try 
if VarIsEmpty(XlsApp) then 
XlsApp := CreateOleObject('Excel.Application'); 
XlsSheet := XlsApp.workbooks.open('c:\my documents\book3.xls'); 

AssignFile(TxtFile,'C:\My Documents\Test.txt'); 
Rewrite(TxtFile); 
try 
for I := 3 to 21 do 
begin 
TmpString := ''; 
for J := 1 to 5 do 
begin 
TmpString := TmpString + XlsSheet.ActiveSheet.Cells[I,J].Text + '|'; 
end
Writeln(TxtFile,Tmpstring); 
end
finally 
CloseFile(TxtFile); 
end
XlsApp.Visible := true
except 
XlsSheet.close; 
XlsApp.Application.quit; 
XlsApp := Unassigned; 
XlsSheet := Unassigned; 
end
end

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); 
begin 
if not VarIsEmpty(XlsApp) then 
begin 
XlsApp.DisplayAlerts := True// 7Discard unsaved files.... 
try 
XlsApp.Application.Quit; 
except 
end
end
end

end

你可能感兴趣的:(保存DBGRID数据到EXCEL文件中)