将表中数据导入EXCEL中来的代码如下:
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ZAbstractRODataset, ZAbstractDataset, ZDataset, DB, DBClient,
Provider, GridsEh, DBGridEh, RzPanel, RzStatus, ExtCtrls, ZConnection,
BusinessSkinForm, StdCtrls, RzLabel, RzEdit, RzButton, DBCtrls, RzDBNav,
ImgList, Grids, DBGrids,ShellAPI, Mask, RzTray;
type
Tmainfrm = class(TForm)
BSFrmExcel: TbsBusinessSkinForm;
Connect: TZConnection;
pnlExcel: TRzPanel;
RzStatusBar1: TRzStatusBar;
RzToolbar1: TRzToolbar;
RzStatusPane1: TRzStatusPane;
RzClockStatus1: TRzClockStatus;
grbxShow: TRzGroupBox;
dbgExcel: TDBGridEh;
dscExcel: TDataSource;
DtStExcel: TDataSetProvider;
cdsExcel: TClientDataSet;
qryExcel: TZQuery;
mmSQL: TRzMemo;
lblSQL: TRzLabel;
RzSpacer1: TRzSpacer;
btnContron: TRzToolButton;
RzSpacer2: TRzSpacer;
btnExcelInt: TRzToolButton;
RzSpacer3: TRzSpacer;
btnExcelOut: TRzToolButton;
btnExit: TRzToolButton;
RzSpacer4: TRzSpacer;
NvgtrExcel: TRzDBNavigator;
ImgLstExcel: TImageList;
btnRfresh: TRzToolButton;
RzTrayIcon1: TRzTrayIcon;
procedure btnExitClick(Sender: TObject);
procedure btnExcelOutClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure mmSQLKeyPress(Sender: TObject; var Key: Char);
procedure btnRfreshClick(Sender: TObject);
procedure btnContronClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
mainfrm: Tmainfrm;
implementation
{$R *.dfm}
procedure Tmainfrm.btnExitClick(Sender: TObject);
begin
close;
end;
procedure Tmainfrm.btnExcelOutClick(Sender: TObject);
var
strTemp:string;
strSQL:string;
f:TextFile;
i,j:integer;
begin
strSQL:=mmSQL.Text;
with qryExcel do
begin
//======
Close;
SQL.Clear;
SQL.Add(strSQL);
Open;
cdsExcel.Active := false;
cdsExcel.Active := true;
//===
try
AssignFile(f,'ExcelTable/Excel.xls');
Rewrite(f);
//====
First;
strTemp := '';
//====
for i := 0 to Fields.Count - 1 do
begin
//====
if Fields[i].FieldName <> '' then
//====
if Fields[i].FieldName = 'ID' then
strTemp := strTemp + ''+#9 //====
else
strTemp := strTemp + Fields[i].FieldName + #9;
end;
Writeln(f,strTemp);
//====
for i := 0 to RecordCount - 1 do
begin
//====
strTemp := '';
for j := 0 to Fields.Count - 1 do
begin
//====
if Fields[j].FieldName <> '' then
strTemp := strTemp + fields[j].AsString + #9;
end;
//====
Writeln(f,strTemp);
//====
Next;
end;
finally
CloseFile(f);
end; //====End File Try
end;
//====
ShellExecute(0,nil,'ExcelTable/Excel.xls',nil,nil,0);
//====
//Application.Terminate;
end;
procedure Tmainfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Connect.Connected := false;
end;
procedure Tmainfrm.mmSQLKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
btnExcelOutClick(Sender);
end;
procedure Tmainfrm.btnRfreshClick(Sender: TObject);
begin
mmSQL.Text := '';
mmSQL.Text := 'select * from ';
end;
procedure Tmainfrm.btnContronClick(Sender: TObject);
begin
if cdsExcel.Active then
cdsExcel.Close
else
cdsExcel.Open;
end;
end.