这是我的一个利用F1BOOK导出数据的例子,看看吧,或许对你有一定的帮助
unit dbout_p;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
StdCtrls, Buttons, OleCtrls, VCF1, DB, ADODB, ComCtrls, ShellCtrls, AxCtrls;
type
Tf_dbout = class(TForm)
bt1: TBitBtn;
Query1: TADOQuery;
fb: TF1Book;
dir: TShellTreeView;
Label1: TLabel;
bt2: TBitBtn;
chk1: TCheckBox;
chk2: TCheckBox;
Query1DSDesigner: TIntegerField;
Query1DSDesigner2: TWideStringField;
Query1DSDesigner3: TWideStringField;
Query1DSDesigner4: TWideStringField;
Query1DSDesigner5: TWideStringField;
Query1DSDesigner6: TWideStringField;
Query1DSDesigner7: TWideStringField;
Query1DSDesigner8: TWideStringField;
Query1DSDesigner9: TWideStringField;
Query1DSDesigner10: TWideStringField;
Query1DSDesigner11: TWideStringField;
Query1DSDesigner12: TWideStringField;
Query1DSDesigner13: TSmallintField;
Query1DSDesigner14: TFloatField;
Query1DSDesigner15: TWideStringField;
Query1DSDesigner16: TFloatField;
Query1DSDesigner17: TWideStringField;
Query1DSDesigner18: TWideStringField;
Query1DSDesigner19: TWideStringField;
Query1DSDesigner20: TWideStringField;
Query1DSDesigner21: TWideStringField;
Query1DSDesigner22: TWideStringField;
Query1DSDesigner23: TWideStringField;
Query1DSDesigner24: TWideStringField;
procedure bt1Click(Sender: TObject);
procedure chk1Click(Sender: TObject);
procedure chk2Click(Sender: TObject);
procedure bt2Click(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
f_dbout: Tf_dbout;
implementation
{$R *.dfm}
uses f_main;
procedure Tf_dbout.bt1Click(Sender: TObject);
var i,n:integer;
s:string;
begin
//处理数据
s:='';
s:=dir.Path;
if (s='') or (copy(s,3,1)<>'/') then
begin
application.MessageBox('必须选择目标目录!','提示信息',48);
exit;
end;
try
query1.open;
except
on e:exceptiondo
begin
application.MessageBox(pchar('无法读取数据!'+#13+#13+e.Message),'错误信息',16);
close;
exit;
end;
end;
if query1.IsEmpty then
begin
application.MessageBox('没有数据,不必导出!','提示信息',48);
exit;
end;
for i:=1 to query1.FieldCountdo
//处理列标题
begin
fb.TextRC[1,i]:=query1.Fields[i-1].DisplayName;
end;
n:=2;
//处理数据
while not query1.Eofdo
begin
for i:=1 to query1.FieldCountdo
begin
fb.TextRC[n,i]:=query1.Fields[i-1].asstring;
end;
inc
;
query1.Next;
end;
s:=dir.Path;
if copy(s,length(s),1)<>'/' then
s:=s+'/';
try
if chk1.Checked then
fb.Write(s+'pmis.xls',5) //保存为EXCEL5.0/97格式
else
fb.Write(s+'pmis.txt',6);
//带格式文本文件格式
application.MessageBox('数据导出成功,请查看!','反馈信息',48);
close;
except
on e:exceptiondo
application.MessageBox(pchar('数据导出失败!'+#13+#13+e.Message),'错误信息',16);
end;
end;
procedure Tf_dbout.chk1Click(Sender: TObject);
begin
chk2.Checked:=not chk1.Checked;
end;
procedure Tf_dbout.chk2Click(Sender: TObject);
begin
chk1.Checked:=not chk2.Checked;
end;
procedure Tf_dbout.bt2Click(Sender: TObject);
begin
close;
end;
procedure Tf_dbout.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
query1.close;
end;
end.