回 帖 发 新 帖 刷新版面

主题:急找最快的DBGRID导出到EXCEL编程方法!!

急找最快的DBGRID导出到EXCEL编程方法!!

回复列表 (共4个回复)

沙发

用EhDBGrid吧,Eh的方法我有!

板凳

var
 ExpClass:TDBGridEhExportClass;//保存文件的地址
 Ext:String;//用于判断保存文件的类型
begin
//打印
  //PrtDefend.Preview;
   SaveDlgDefend.FileName := 'file1';//文件名称
   if SaveDlgDefend.Execute then
   begin
     case SaveDlgDefend.FilterIndex of
      1: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
      2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
      3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
      4: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
      5: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
     else
       ExpClass := nil; Ext := '';
     end;
    if ExpClass <> nil then
     begin
      if UpperCase(Copy(SaveDlgDefend.FileName,Length(SaveDlgDefend.FileName)-2,3)) <> UpperCase(Ext) then
        SaveDlgDefend.FileName := SaveDlgDefend.FileName + '.' + Ext;
      showmessage('导出数据成功!');
      SaveDBGridEhToExportFile(ExpClass,GrdBabyNum,SaveDlgDefend.FileName,True);//导出数据
    //其中false为局部数据
      end;
   end;

3 楼


EhDBGrid到哪找,需要外加控件嘛?

4 楼

找TSMExportToXLS这个控件也可以,网上很多的,方法就更简单:

var
  sFilePathName: string;
begin
  sFilePathName := ExtractFilePath( Application.ExeName ) + 'Excel\1.XLS';
  SMExportToXLS1.FileName := sFilePathName;

  try
    SMExportToXLS1.Execute;
  except
    MessageBox(Handle,'导出Excel失败!,请查看您是否安装Excel!',sSysName,MB_ICONERROR);
  end;

我来回复

您尚未登录,请登录后再回复。点此登录或注册