DBGridEh导出Excel等格式文件

时间:2020-11-07 19:43:48   收藏:0   阅读:41
uses DBGridEhImpExp;
 {-------------------------------------------------------------------------------
  过程名:    TfrmEmplyExport.OutToFile
  作者:      han
  日期:      2007.08.08
  参数:      IADO : TADOQuery; DgEh : TDBGridEh
  返回值:    无
  说明:      导出查询结果到文件
-------------------------------------------------------------------------------}
procedure TfrmEmplyExport.OutToFile(IADO : TADOQuery; DgEh : TDBGridEh);
var
  ExpClass:TDBGridEhExportclass;
  Ext:String;
  FSaveDialog: TSaveDialog;
begin
  try
    if not IADO.IsEmpty then
    begin
      FSaveDialog := TSaveDialog.Create(Self);
      FSaveDialog.Filter:=Excel 文档 (*.xls)|*.XLS|Text files (*.txt)|*.TXT|Comma separated values (*.csv)|*.CSV|HTML file (*.htm)|*.HTM|Word 文档 (*.rtf)|*.RTF;
      if FSaveDialog.Execute and (trim(FSaveDialog.FileName)<>‘‘) then
      begin
        case FSaveDialog.FilterIndex of
            1: begin ExpClass := TDBGridEhExportAsXLS; Ext := xls; end;
            2: begin ExpClass := TDBGridEhExportAsText; Ext := txt; end;
            3: begin ExpClass := TDBGridEhExportAsCSV; Ext := csv; end;
            4: begin ExpClass := TDBGridEhExportAsHTML; Ext := htm; end;
            5: begin ExpClass := TDBGridEhExportAsRTF; Ext := rtf; end;
        end;
        if ExpClass <> nil then
        begin
          if UpperCase(Copy(FSaveDialog.FileName,Length(FSaveDialog.FileName)-2,3)) <> UpperCase(Ext) then
            FSaveDialog.FileName := FSaveDialog.FileName + . + Ext;
            if FileExists(FSaveDialog.FileName) then
            begin
              if application.MessageBox(文件名已存在,是否覆盖   , 提示, MB_ICONASTERISK or MB_OKCANCEL)<>idok then
                exit;
            end;
           Screen.Cursor := crHourGlass;
           SaveDBGridEhToExportFile(ExpClass,DgEh,FSaveDialog.FileName,true);
           Screen.Cursor := crDefault;
           MessageBox(Handle, 导出成功  , 提示, MB_OK +
             MB_ICONINFORMATION);
          end;
      end;
      FSaveDialog.Destroy;
    end;
  except
    on e: exception do
    begin
      Application.MessageBox(PChar(e.message), 错误, MB_OK + MB_ICONSTOP);
    end;
  end;                       
end;

 

原文:https://www.cnblogs.com/jijm123/p/13941586.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!