• 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.

  • 相关阅读:
    JAVA 遍历UFT-8所有中文
    用友U8 | 【固定资产】固定资产常见问题
    用友U8 | 【出纳管理】当前凭证不是出纳管理凭证,不能修改
    用友U8 | 【出纳管理】选中的日记账包含了已制单但没有回写凭证号的日记账,无法制单!
    用友U8 | 【生产订单】工作日历未设定或超出工作日历范围
    用友U8 | 【出纳管理】当前选择的日记账已经制单,上次制单包含其他账户的日记账,请在日记账查询中修改
    用友U8 | 【U8年结】开账结转如何操作?
    用友U8 | 【出纳管理】收支操作生单提示:集合中的143272已经加锁了,不能对集合中的数据进行加锁
    用友U8 | 【出纳管理】银行记账提示:未设置对象变量或with block 变量(91)
    MySQL经典45题(二)
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940782.html
Copyright © 2020-2023  润新知