DBGridEh 导出文件-----[收藏]

procedure DBGridehToExport(lsdbgrideh:TDBGridEh);
var
  ExpClass: TDBGridEhExportClass;
  Ext: string;
  lssavedialog: tsavedialog;
begin
  try
    lssavedialog := tsavedialog.Create(nil);
    lssavedialog.Filter := '*.xls|*.xls|*.csv|*.csv|*.htm|*.htm|*.rtf|*.rtf|*.txt|*.txt';
    lssavedialog.FileName := 'file1';
    if lssavedialog.Execute then
    begin
      case lssavedialog.FilterIndex of
        1: begin ExpClass := TDBGridEhExportAsText; Ext := 'xls'; end;
        2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
        3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
        4: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
        5: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'txt'; end;
      else
        ExpClass := nil; Ext := '';
      end;
      if ExpClass <> nil then
      begin
        if UpperCase(Copy(lssavedialog.FileName, Length(lssavedialog.FileName) - 2, 3)) <> UpperCase(Ext) then
          lssavedialog.FileName := lssavedialog.FileName + '.' + Ext;
        if FileExists(lssavedialog.FileName) then
        begin
          if application.MessageBox('文件名已存在,是否覆盖', '提示', MB_ICONASTERISK or MB_OKCANCEL) <> idok then
          begin
            exit;
          end;
        end;
        Screen.Cursor := crHourGlass;
        try
        SaveDBGridEhToExportFile(ExpClass, lsDBGridEh, lssavedialog.FileName, true);
        except
          ShowMessage('NO');
        end;
        Screen.Cursor := crDefault;
      end;
    end;
  finally
    lssavedialog.Free;
  end;
end;
posted on 2010-04-06 10:25  雪夜  阅读(206)  评论(0)    收藏  举报