分享

导出Excel

 room854 2015-04-29
用到的有两个,一个是SaveDialog,一个ExcelApplication就行了
具体的导出函数如下 :
procedure QueryToExcel(Q:TAdoQuery;Tit:string;FileName:string);
var
XlApp,XlWorkbook,XlSheet:Olevariant;
i,j:integer;
Range:OleVariant;
begin
Try
XlApp:=createOleObject('Excel.Application');
XLApp.visible:=false;
XlWorkbook:=XlApp.workbooks.add;
XlSheet:=Xlworkbook.sheets.add;
except
showmessage('你还没有安装Microsoft Excel,请先安装!');
XlApp.Quit;
XlSheet:=Unassigned;
XlWorkbook:=Unassigned;
Xlapp:=Unassigned;
exit;
end;

for i:=0 to Q.FieldCount-1 do
begin
Xlsheet.Cells[1,i+1]:=Q.Fields[i].DisplayName ;
end;

for i:=1 to Q.RecordCount do
begin
for j:=0 to Q.FieldCount -1 do
begin
if ((j=0) or (j=6) or (j=22)) and (Q.Fields[j].AsString<>'') then
Xlsheet.cells[i+1,j+1]:=''''+Q.Fields[j].Asstring else
Xlsheet.cells[i+1,j+1]:=Q.Fields[j].AsString;
end;
Q.Next;
end;

Xlsheet.rows[1].insert;
Range:=Xlsheet.range[XlSheet.cells[1,1],XlSheet.cells[1,Q.FieldCount-DelCollist.count]];
Range.merge;
Range.HorizontalAlignment:= xlCenter;
Range.VerticalAlignment:= xlCenter;
Range.WrapText:=true;
Range.Font.size:=14;
Xlsheet.cells[1,1]:=Tit;

Xlsheet.Columns.EntireColumn.AutoFit;

if FileExists(FileName) then
begin
if MessageDlg('文件已经存在,要替换吗?',mtConfirmation,[mbyes,mbno],0)=mrno then
begin
XlApp.Quit;
XlSheet:=Unassig ned;
XlWorkbook:=Unassigned;
Xlapp:=Unassigned;
exit;
end;
end;
try
XlWorkbook.SaveAs(FileName);
except
showmessage('导出失败,请检查你对该文件是否有写权限!');
XlApp.Quit;
XlSheet:=Unassigned;
XlWorkbook:=Unassigned;
Xlapp:=Unassigned;
exit;
end;
showmessage('导出成功!请不要改动导出的Excel表中的列标题!否则将不能将该Excel表再导入!');
XlWorkBook.Saved:=true;
XlApp.Quit;
XlSheet:=Unassigned;
XlWorkbook:=Unassigned;
Xlapp:=Unassigned;
// XlSheet:=Unassigned;
// XlWorkbook:=Unassigned;
// XlApp:=Unassigned;
end;
慢慢看吧
调用这个过程
SaveDialog1.Filter:='Microsoft Excel|*.xls';
if SaveDialog1.Execute then
begin
if SaveDialog1.FileName <>'' then
begin
FilesName:=SaveDialog1.FileName;
TitleName:='XXXX基本信息表';
QueryToExcel(DataM.Qr_EquipmentDetails,TitleName,FilesName);
end;
end; <收起

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多