频道分类

delphi TDBGridEh导出excel

作者:admin 来源: 日期:2020/3/5 21:47:09 人气: 标签:

 
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 拼接文件路径下一篇:没有资料