delphi TDBGridEh导出excel


本文整理自网络,侵删。

 
function DBGridExport(lpGrid:TDBGridEh) : Boolean;
var
  ExpClass: TDBGridEhExportClass;
  Ext: string;
  SaveDlg: TSaveDialog;
  ExportAll: Boolean;
begin
  ExportAll := True; //缺省情况下导出所有数据
  SaveDlg := TSaveDialog.Create(Application);
  SaveDlg.Filter := 'Excel表格(*.XLS)|*.XLS|HTML文档(*.HTM)|*.HTM|RTF格式(*.RTF)|*.RTF|纯文本文件(*.TXT)|*.TXT|逗号分隔文本格式(*.CSV)|*.CSV';
  SaveDlg.FileName := '明细表' + '_' + FormatDateTime('YYMMDDHHmmSS', now);
  SaveDlg.Options := [ofOverwritePrompt, ofHideReadOnly, ofEnableSizing];
  if SaveDlg.Execute then
    begin
      case SaveDlg.FilterIndex of
        1:
          begin
            ExpClass := TDBGridEhExportAsXLS;
            Ext := 'xls';
          end;
        2:
          begin
            ExpClass := TDBGridEhExportAsHTML;
            Ext := 'htm';
          end;
        3:
          begin
            ExpClass := TDBGridEhExportAsRTF;
            Ext := 'rtf';
          end;
        4:
          begin
            ExpClass := TDBGridEhExportAsText;
            Ext := 'txt';
          end;
        5:
          begin
            ExpClass := TDBGridEhExportAsCSV;
            Ext := 'csv';
          end;
      else
        ExpClass := nil;
        Ext := '';
      end;

      if ExpClass <> nil then
      begin
        if UpperCase(Copy(SaveDlg.FileName, Length(SaveDlg.FileName) - 2, 3)) <> UpperCase(Ext) then
          SaveDlg.FileName := SaveDlg.FileName + '.' + Ext;
                //如果grid中有选择的区域,则只导出所选择的区域
        if lpGrid.Selection.SelectionType <> gstNon then ExportAll := False;
        try
          SaveDBGridEhToExportFile(ExpClass, lpGrid, SaveDlg.FileName, ExportAll);
          ShellExecute(0,'open',PWideChar( SaveDlg.FileName ),nil,nil,SW_SHOW);
        except

          on E: Exception do
          begin
            MessageBox(0, LPCTSTR('保存文件发生异常,请检查是否有重名文件并且该文件没有被打开!'), '注意', MB_OK or MB_ICONWARNING);
            Exit;
          end;

        end;

      end;

    end;

end;

相关阅读 >>

Delphi 数组与枚举

Delphi 实现放大效果

Delphi ios 保持设备开机状态

Delphi 从indy9升级到indy10时idtcpserver的变化

Delphi 自带的 base64 编解码函数

Delphi 用api函数抓取屏幕图像

Delphi遍历所有控件

Delphi httpresponsestrings

Delphi 弹窗显示sql字符串

Delphi 语法基础: 使用不同的数据类型标记数组

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...