1楼的方法是对的。 uses cxGridExportLink;我倒出的代码是 ExportGridToExcel('D:\Test.xls',cxGrid1); 也可以用对话框完成 if SaveDialog1.Execute then ExportGridToExcel(SaveDialog1.FileName,cxGrid1);
不用控件。用delphi自带的就可以了。 ExcelApplication1: TExcelApplication; ExcelWorksheet1: TExcelWorksheet; ExcelWorkbook1: TExcelWorkbook; procedure TForm1.toexcelClick(Sender: TObject); var i,j:integer; empty:OleVariant; begin if ADOQuery1.Active=true then begin try Excelapplication1.Connect; except MessageDlg('Excel可能没有安装', mtError, [mbOk], 0); Abort; end; ExcelApplication1.Visible[0] := True; try empty := EmptyParam; ExcelApplication1.Workbooks.Add(empty,0); ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Item[ ExcelApplication1.Workbooks.Count]); ExcelWorkBook1.Activate ; ExcelWorksheet1.ConnectTo((ExcelWorkbook1.Worksheets[1] as _WorkSheet)); for j:=1 to ADOQuery1.RecordCount do begin for i:=1 to ADOQuery1.fields.Count do begin excelworksheet1.Cells.Item[j,i]:=trim(ADOQuery1.fields[i-1].AsString)+#9;// end; ADOQuery1.Next; end; except ExcelWorkBook1.Close(xlDoNotSaveChanges); ExcelApplication1.Disconnect; end; end else showmessage('无数据可保存!'); end; 要记得关闭excel。。 procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Excelapplication1.Disconnect ; end; 百分百的通过!!!!!记得给分哦。!!!!!!
再使用下列語句導出:
ExportGridToExcel('C:\ExportFile\Test.xls',cxGrid1,True);
下面是這個過程的定義:
procedure ExportGridToExcel(const AFileName: string; AGrid: TcxGrid; AExpand: Boolean = True; ASaveAll: Boolean = True; AUseNativeFormat: Boolean = True; const AFileExt: string ='xls');
我用的是6.4版本的,低版本也應有。我用版本4.5時就有,但單元與過程名不同。你可找下幫助。
uses cxGridExportLink;我倒出的代码是
ExportGridToExcel('D:\Test.xls',cxGrid1);
也可以用对话框完成 if SaveDialog1.Execute then
ExportGridToExcel(SaveDialog1.FileName,cxGrid1);
ExcelApplication1: TExcelApplication;
ExcelWorksheet1: TExcelWorksheet;
ExcelWorkbook1: TExcelWorkbook;
procedure TForm1.toexcelClick(Sender: TObject);
var
i,j:integer;
empty:OleVariant;
begin
if ADOQuery1.Active=true then
begin
try
Excelapplication1.Connect;
except
MessageDlg('Excel可能没有安装', mtError, [mbOk], 0);
Abort;
end; ExcelApplication1.Visible[0] := True;
try
empty := EmptyParam;
ExcelApplication1.Workbooks.Add(empty,0);
ExcelWorkBook1.ConnectTo(ExcelApplication1.Workbooks.Item[
ExcelApplication1.Workbooks.Count]);
ExcelWorkBook1.Activate ;
ExcelWorksheet1.ConnectTo((ExcelWorkbook1.Worksheets[1] as _WorkSheet));
for j:=1 to ADOQuery1.RecordCount do
begin
for i:=1 to ADOQuery1.fields.Count do
begin
excelworksheet1.Cells.Item[j,i]:=trim(ADOQuery1.fields[i-1].AsString)+#9;//
end;
ADOQuery1.Next;
end;
except
ExcelWorkBook1.Close(xlDoNotSaveChanges);
ExcelApplication1.Disconnect;
end;
end else showmessage('无数据可保存!');
end;
要记得关闭excel。。
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Excelapplication1.Disconnect ;
end;
百分百的通过!!!!!记得给分哦。!!!!!!