如何在没有excel的情况下将数据导出成excel文件
研究了半天,终于找出了如何在没有excel的情况下将数据导出成excel文件的方法。
方法一:
在窗体上放置一个TADOQuery组件,通过OleDB连接到一个数据表,设定其SQL属性
为:
select * into mysheet in "c:\temp.xls" "Excel 8.0;" from Vendors
此句SQL命令的意思是从表Vendors 中检索所有数据,把检索出来的数据保存到
c:\temp.xls 文件的mysheet表单中。"Excel 8.0;"指定了OLEDB使用的ISAM驱动
,分号不能省略。
设定active=true即可。
这种方式只要客户端电脑上有OLDB驱动即可,不过这种方式只能连接被OLEDB支持的数据库,比如Access等。
方法二:
var I: Integer;
Str: String; StrList: TStringList;
begin StrList := TStringList.Create;
try
with ADOTable1 do
begin
First;
while not Eof do
begin
Str := '';
for I := 0 to FieldCount-1 do
Str := Str + Fields[I].AsString + #9;
StrList.Add(Str);
Next;
end;
StrList.SaveToFile('test.xls');
end;
StrList.Free;
except
StrList.Free;
end;
end;
这种方式对客户端没有任何要求使用起来最方便。
欢迎访问我的主页:http://lincosoft.go.nease.net
研究了半天,终于找出了如何在没有excel的情况下将数据导出成excel文件的方法。
方法一:
在窗体上放置一个TADOQuery组件,通过OleDB连接到一个数据表,设定其SQL属性
为:
select * into mysheet in "c:\temp.xls" "Excel 8.0;" from Vendors
此句SQL命令的意思是从表Vendors 中检索所有数据,把检索出来的数据保存到
c:\temp.xls 文件的mysheet表单中。"Excel 8.0;"指定了OLEDB使用的ISAM驱动
,分号不能省略。
设定active=true即可。
这种方式只要客户端电脑上有OLDB驱动即可,不过这种方式只能连接被OLEDB支持的数据库,比如Access等。
方法二:
var I: Integer;
Str: String; StrList: TStringList;
begin StrList := TStringList.Create;
try
with ADOTable1 do
begin
First;
while not Eof do
begin
Str := '';
for I := 0 to FieldCount-1 do
Str := Str + Fields[I].AsString + #9;
StrList.Add(Str);
Next;
end;
StrList.SaveToFile('test.xls');
end;
StrList.Free;
except
StrList.Free;
end;
end;
这种方式对客户端没有任何要求使用起来最方便。
欢迎访问我的主页:http://lincosoft.go.nease.net
解决方案 »
- fastreport edit问题
- 如何控制另一窗体中的combobox,使combobox的选项依次选择
- DBGRID中,怎么显示两个列中代码的中文名称?代码代表的部门中文名称有可能一样的!
- 什么代码都没有,dbgrid自动跳到第一行?
- 如何从文本文件中读出数据库?
- Delphi中预想不到的代码
- COM+问题
- rave报表的问题
- 号称VC高手85%是吹牛B,而且是很笨的人
- 为何常出现Record Changed by Another User ??????????????????
- DLL中的子窗体的子窗体一创建,就会在任务管理器中形成独立的 任务,为什么??
- 如何在dll中引入VCL组件的事件。
方法如下
ADOTable1.SQl.Clear;
ADOTable1.SQl.Add('select * into mysheet in "'+SaveDialog1.filename+'" "Excel 8.0;" from Vendors');
ADOTable.Open;