zoukankan      html  css  js  c++  java
  • DBGridEh导出Excel等格式文件

    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;
    好的代码像粥一样,都是用时间熬出来的
  • 相关阅读:
    几个计算广告学的课程
    Jie Bao 牛人cv
    如果英剧《黑镜子》拍第三季,你来写一集剧本策划,你想写一个什么样的故事呢? 知乎
    设计模式之迭代器与组合模式
    javascript 时钟clock
    项目中的需求蔓延
    一个产生随机random markers 例子
    设计模式之模板方法模式
    设计模式之反(向)模式
    转:用函数式编程技术编写优美的 JavaScript
  • 原文地址:https://www.cnblogs.com/jijm123/p/13941586.html
Copyright © 2011-2022 走看看