我自己写了一个函数你调用就可以了 function save(listview:tlistview):boolean; var myfile:tfilename; s:tlistview; i,j,k,l,p,q:integer; save:tsavedialog; sa,sn,sb:array of string; excelapp:olevariant; begin result:=true; s:=listview; save:=tsavedialog.Create(application); save.FileName:='文档'; save.Filter:='*.xls'; if save.Execute then begin myfile:=save.FileName+'.xls'; try screen.Cursor:=crhourglass; excelapp:=createoleobject('excel.application'); i:=s.Items.Count; if i=0 then begin application.MessageBox('在此控件中没有你要导出的数据','系统提示!'); screen.Cursor:=crdefault; end else begin try j:=s.Columns.Count; setlength(sa,j); setlength(sb,i); excelapp.workbooks.add; for l:=0 to j-1 do begin sa[l]:=s.column[l].Caption ; excelapp.activesheet.columns[l+1].columnwidth:=length(sa[l])+10; excelapp.cells[1,l+1].value:=sa[l]; end; for k:=0 to i-1 do begin p:=s.Items.Item[k].SubItems.Count; setlength(sn,p); sb[k]:=s.Items.Item[k].Caption; excelapp.cells[k+2,1]:=sb[k]; for q:=0 to p-1 do begin sn[q]:=s.Items.Item[k].SubItems.Strings[q]; excelapp.cells[k+2,q+2]:=sn[q]; end; end; try excelapp.activeworkbook.SaveAs(myfile); except exit; end; finally screen.Cursor:=crdefault; sa:=nil; sb:=nil; sn:=nil; excelapp.quit; save.Free; end; end; except application.MessageBox('未安装此软件或运行期错误!','系统提示') end; end; end; 在你的 private { Private declarations } public { Public declarations } end; function save(listview:tlistview):boolean;/*在这里声明一下就可以用了; var frmmain: Tfrmmain; 你在程序里面键入save(listview1);就可以把listview1里面显示的数据导入到excel中去了,很方便的 记得给分哟!!!implementation
function save(listview:tlistview):boolean;
var
myfile:tfilename;
s:tlistview;
i,j,k,l,p,q:integer;
save:tsavedialog;
sa,sn,sb:array of string;
excelapp:olevariant;
begin
result:=true;
s:=listview;
save:=tsavedialog.Create(application);
save.FileName:='文档';
save.Filter:='*.xls';
if save.Execute then
begin
myfile:=save.FileName+'.xls';
try
screen.Cursor:=crhourglass;
excelapp:=createoleobject('excel.application');
i:=s.Items.Count;
if i=0 then
begin
application.MessageBox('在此控件中没有你要导出的数据','系统提示!');
screen.Cursor:=crdefault;
end
else
begin
try j:=s.Columns.Count;
setlength(sa,j);
setlength(sb,i);
excelapp.workbooks.add;
for l:=0 to j-1 do
begin
sa[l]:=s.column[l].Caption ;
excelapp.activesheet.columns[l+1].columnwidth:=length(sa[l])+10;
excelapp.cells[1,l+1].value:=sa[l];
end;
for k:=0 to i-1 do
begin
p:=s.Items.Item[k].SubItems.Count;
setlength(sn,p);
sb[k]:=s.Items.Item[k].Caption;
excelapp.cells[k+2,1]:=sb[k];
for q:=0 to p-1 do
begin
sn[q]:=s.Items.Item[k].SubItems.Strings[q];
excelapp.cells[k+2,q+2]:=sn[q];
end;
end;
try
excelapp.activeworkbook.SaveAs(myfile);
except
exit; end; finally
screen.Cursor:=crdefault;
sa:=nil;
sb:=nil;
sn:=nil;
excelapp.quit;
save.Free;
end;
end;
except
application.MessageBox('未安装此软件或运行期错误!','系统提示')
end;
end;
end;
在你的
private
{ Private declarations }
public
{ Public declarations }
end;
function save(listview:tlistview):boolean;/*在这里声明一下就可以用了;
var
frmmain: Tfrmmain;
你在程序里面键入save(listview1);就可以把listview1里面显示的数据导入到excel中去了,很方便的
记得给分哟!!!implementation