将表中数据导入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.
这篇博客提供了一段Delphi代码,用于从数据库表中导出数据到Excel文件。用户输入SQL查询,代码创建一个Excel文件并填充查询结果,最后使用ShellExecute打开生成的Excel文件。
683

被折叠的 条评论
为什么被折叠?



