zoukankan      html  css  js  c++  java
  • DbgridEh数据导出到Excel的方法(Delphi)

    本文内容严重参考了网上其他牛人的代码,并做了一些修改,使得参数更加简单,结构更清晰,所以就厚着脸皮说是原创。

    uses DBGridEhImpExp;

    procedure TFrm_func.DbGridEhToExcel(ADgEh: TDBGridEh);
    var
      ExpClass: TDBGridEhExportclass;
      Ext: string;
      FSaveDialog: TSaveDialog;
    begin
      try
        if ADgEh.DataSource.DataSet.IsEmpty then
        begin
          Application.MessageBox(PChar('没有可导出的数据'), PChar('提示'), MB_OK +
            MB_ICONINFORMATION);
          exit;
        end;
        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, ADgEh, FSaveDialog.FileName, true);
            Screen.Cursor := crDefault;
            MessageBox(Handle, '导出成功  ', '提示', MB_OK +
              MB_ICONINFORMATION);
          end;
        end;
        FSaveDialog.Destroy;
      except
        on e: exception do
        begin
          Application.MessageBox(PChar(e.message), '错误', MB_OK + MB_ICONSTOP);
        end;
      end;
    end;

    好的代码像粥一样,都是用时间熬出来的
  • 相关阅读:
    2017年陕西省网络空间安全技术大赛WP
    XDCTF2014 Writeup
    TensorFlow入门测试程序
    python计算器
    CentOS安装crontab及使用方法
    在Linux 双机下自己手动实现浮动ip技术
    CentOS 7下安装配置FTP
    encodeURI 解码 编码
    jquery 消息提醒插件 toastmessage
    搭通自己的电脑与GitHub的传输通道
  • 原文地址:https://www.cnblogs.com/jijm123/p/13452075.html
Copyright © 2011-2022 走看看