微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Delphi7 导出Dbgrid数据到Excel 默认路径设置为我的文档


下面代码是自己写的,今天有个同学打电话问我
在Delphi7 导出Dbgrid数据到Excel 正好我最近写过 
也许会有更多的网友也会遇到类似的问题,把代码发下,
大家可以参考,有什么不足及需要改进的地方,请指教。

让我们共同学习。

procedure TFPeopleMgr.N6Click(Sender: TObject);
var
j:   integer;
filename:   string;
MSExcel,xlsheet,xlBook :   Variant;      //ole   ComObj
reg:Tregistry;
MYDocumentPath:   string; 
begin
IF DBGrid1.Fields[0].Asstring='' then
begin
    Application.MessageBox('列表为空,无法导出!','错误操作',MB_OK+MB_ICONError);
    exit;
end;
//获得“我的文档”的路径
reg:=Tregistry.create;
reg.rootkey:=HKey_Current_User;
reg.openkey('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders',false);
MYDocumentPath:=reg.READString('Personal');//“我的文档”的路径
SaveDialog1.InitialDir:=MYDocumentPath;
reg.closekey;
reg.free;
//导出数据
if TreeView_Dep.Selected=nil then
begin
    SaveDialog1.FileName:='人员信息 '+datetostr(Now);
end
else
    SaveDialog1.FileName:=TreeView_Dep.Selected.Text+'人员信息 '+datetostr(Now);

if SaveDialog1.Execute then
begin
    filename := concat(SaveDialog1.FileName,'.xls');
    try
       MSExcel:=CreateOLEObject('Excel.Application');
       xlBook:=MSExcel.WorkBooks.Add;
       xlsheet:=xlBook.Worksheets['sheet1'];
       xlsheet.Cells.item[1,1]:='编号';
       xlsheet.Cells.item[1,2]:='姓名';
       xlsheet.Cells.item[1,3]:='考勤号';
       xlsheet.Cells.item[1,4]:='单位';
       xlsheet.Cells.item[1,5]:='职务';
       j:=1;
       qe_ren.First;
       while   not   qe_ren.Eof   do   begin
         DBGrid1.SelectedRows.CurrentRowSelected   :=   True;
         xlsheet.Cells.item[j+1,1]:=DBGrid1.Fields[0].Asstring;
         xlsheet.Cells.item[j+1,2]:=DBGrid1.Fields[1].Asstring;
         xlsheet.Cells.item[j+1,3]:=DBGrid1.Fields[2].Asstring;
         xlsheet.Cells.item[j+1,4]:=DBGrid1.Fields[3].Asstring;
         xlsheet.Cells.item[j+1,5]:=DBGrid1.Fields[4].Asstring;
         qe_ren.Next;
         j:=J+1;
       end;//while
       xlBook.SaveAs(filename);
       MSExcel.WorkBooks.close;
       MSExcel.Quit;
       MSExcel:=unassigned;
    except
      Application.MessageBox('Excel没有安装!','错误提示',MB_ICONERROR+mb_Ok);
      exit;
    end;//try
end;// end if SaveDialog1.Execute then

end;

转载请注明出处。


版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐