紧急求助,数据集导出Excel,急急! ( 积分: 1 )

  • 主题发起人 主题发起人 zpselect
  • 开始时间 开始时间
Z

zpselect

Unregistered / Unconfirmed
GUEST, unregistred user!
如何直接将数据集中的数据导入到Excel中?不是DBGrid,而是直接操作数据集!
 
http://www.cnblogs.com/qufo/archive/2005/04/05/132374.html

function DS2XLS(DS:TDataSet;FS:string):Boolean;
var
i,j:Integer;
sl:TStringList;
str:String;
begin
try
sl:=TStringList.Create();
try
DS.First;

sl.Add('<html> <table width="100%" border="1">');

for i:=0 to DS.FieldCount-1 do
str:=str+'<td>'+DS.Fields.DisplayName+'</td>';
sl.Add(str);

for j:=0 to DS.RecordCount-1 do
begin
str:='<tr>';
for i:=0 to DS.FieldCount-1 do
if varisnull(DS.Fields.Value) then str:=str+'<td>'+'</td>' else str:=str+'<td>'+string(DS.Fields.Value)+'</td>';
str:=str+'</tr>';
sl.Add(str);
DS.Next;
end;
sl.Add('</table></html>');

sl.SaveToFile(FS);
Result:=True;
except
REsult:=False;
end;
finally
sl.Free;
end;
end;
 
此函数写的相当不错.
 
问个比较初级的问题,怎么把这些东西导入到EXCEL表中呢。。。
你这个是直接输出到网页中的
 
是输出的网页文件,但Excel可以打开网页文件,只要你把文件的扩展名改为 .xls 便可,不信你试试。
 
procedure TERP_CreateExcelForm.setdatatoexcel;
var
i,row,column,j,m:integer;
CanInsert:Boolean;
fieldname:string;
begin
//Astrings保存各字段的字段名
//Cstrings保存各字段显示时候的中文列名称
for i := 1 to Cstrings.Count do
begin
ExcelWorksheet1.Cells.Item[1,i] :=
Astrings.Names[strtoint(Cstrings.Strings[i-1])]
end;
row:=2;
for m := 1 to cdsshow.RecordCount do
begin
cdsshow.RecNo := m;
Column:=1;
if Cstrings.Count > 0 then
for j := 0 to Cstrings.Count-1 do
begin
FieldName:=
Astrings.ValueFromIndex[strtoint(Cstrings.Strings[j])];
if FieldName<>'' then
begin
ExcelWorksheet1.Cells.Item[row,column]:=cdsshow.fieldbyname(FieldName).AsString;
Column:=Column+1;
end
else
begin
ExcelWorksheet1.Cells.Item[row,column]:=IntToStr(cdsshow.RecNo);
Column:=Column+1;
end;
end;
row:=row+1;
end;
end;
 
Cstrings:指的是什么?
 
有没有好一点的导出代码?
 
http://www.star-reg.com/dl/ExcelRead&WriteOCX.rar
这项技术不用OLE支持可较好地解决你的问题
QQ:292044357
email:chyzpc@163.com
 
http://www.star-reg.com/soft/softview.php?id=12402
这项技术不用OLE支持可较好地解决你的问题
QQ:292044357
email:chyzpc@163.com
 
有没有简单一点的方法?就将数据集中的数据一笔笔的导入到EXCEL中就可以了!
 
delphi群:23981160,爱好d的都来
 
后退
顶部