zoukankan      html  css  js  c++  java
  • dbgrideh的導入和導出

    {*******************************************************}
    {                                                       }
    {       导出Tdbgrideh数据                               }
    {                                                       }
    {       版权所有 (C) 2007 咏南工作室                    }
    {                                                       }
    {*******************************************************}

    unit uExport;

    interface

    uses
      DBGridEhImpExp, DBGridEh, SysUtils, Dialogs, ComObj, ActiveX, Variants, db,
      FormWait,Windows,Graphics;

    procedure ExpDbgridEh(grid:TDBGridEh;OpenExcel:Boolean=True);
    procedure ImpDbgridEH(Grid:TDBGridEh);

    implementation

    //==============================================================================
    // 增加进度条显示 by cxg 2008-01-05 10:08:09
    //==============================================================================

    procedure ImpDbgridEH(Grid:TDBGridEh);
    var
      OpenDialog:TOpenDialog;
    begin
      if (not Assigned(grid)) or (not grid.DataSource.DataSet.Active) then
        exit;
      OpenDialog:=TOpenDialog.create(nil);
      try
        OpenDialog.Filter:='文本文件|*.TXT';
        OpenDialog.FilterIndex:=1;
        if OpenDialog.Execute then
        begin
          ShowWaitText('请稍候');
          LoadDBGridEhFromImportFile(TDBGridEhImportAsText,
            Grid,OpenDialog.FileName,True);
        end; 
      finally
        OpenDialog.Free;
        ShowWaitText();
      end;  
    end; 

    procedure ExpDbgridEh(grid:TDBGridEh;OpenExcel:Boolean=True);
    var
      ExpClass:TDBGridEhExportClass;
      Ext:String;
      SaveDialog:TSaveDialog;
      ExcelApp: Variant;
    begin
      if (not Assigned(grid)) or (not grid.DataSource.DataSet.Active)
        or (grid.DataSource.DataSet.IsEmpty) then exit;
      SaveDialog:=TSaveDialog.Create(nil);
      try
        SaveDialog.FileName := '文件1';
        SaveDialog.Filter:='EXCEL电子表格|*.XLS|HTML网页|*.HTM|文本文件|*.TXT|CSV'
          +'|*.CSV|RTF富文本|*.RTF';
        SaveDialog.FilterIndex:=1;
        if SaveDialog.Execute then
        begin
          ShowWaitText('请稍候');  
          try
            case SaveDialog.FilterIndex of
              1: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
              2: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
              3: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
              4: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
              5: begin ExpClass := TDBGridEhExportAsRTF; Ext := 'rtf'; end;
            else
              ExpClass := nil; Ext := '';
            end;
            if ExpClass <> nil then
            begin
              if UpperCase(Copy(SaveDialog.FileName,
                Length(SaveDialog.FileName)-2,3))<> UpperCase(Ext) then
                SaveDialog.FileName := SaveDialog.FileName + '.' + Ext;
              SaveDBGridEhToExportFile(ExpClass,grid,SaveDialog.FileName,true);

              if SaveDialog.FilterIndex=1 then
              begin
                if OpenExcel then
                begin
                  ExcelApp := CreateOleObject( 'Excel.Application' );
                  ExcelApp.visible := True;
                  ExcelApp.workbooks.add;
                  ExcelApp.WorkBooks.Open(SaveDialog.FileName);
                  ExcelApp.ActiveSheet.PageSetup.PrintGridLines := True;
                  //ExcelApp.ActiveSheet.PageSetup.CenterHeader := '咏南工作室';
                  ExcelApp.ActiveSheet.PageSetup.CenterFooter := '第&P页';
                  ExcelApp.ActiveSheet.Rows[1].Font.Name := '宋体';
                  ExcelApp.ActiveSheet.Rows[1].Font.Color  := clBlue;
                  //ExcelApp.ActiveSheet.Rows[1].Font.Bold   := True;
                end;
              end;
                //excel的列从1开始记数,DBGRIDEH的列从0开始记数
                //excel的列宽以字符为单位,DBGRIDEH的列宽不同
            end;
          finally
            ShowWaitText();
          end;
        end;
      finally
        FreeAndNil(SaveDialog);
      end; 
    end;

    end.

  • 相关阅读:
    php使用PHPMailer邮件类发送邮件
    apache一个IP一个端口对应多个域名
    网页宽度自动适应手机屏幕宽度的方法
    PHP抓取网页图片
    innodb存储引擎
    mysql存储引擎概述
    mysql事务
    mysql字符集
    mysql数据对象
    SQL-基础学习4--聚集函数:AVG(),COUNT(),MAX(),MIN(),SUM();聚集不同值:DISTINCT
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940782.html
Copyright © 2011-2022 走看看