锐浪报表 Grid++Report 导出其它格式文件

本文详细介绍了锐浪报表Grid++Report控件的导出功能,包括默认格式和7种特定格式的导出,以及如何通过参数设置实现直接导出、指定文件类型、邮件发送等功能。同时,提供了相关的代码示例,涵盖了不同导出方法的使用和事件处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

锐浪报表 Grid++Report 导出其它格式文件

    Grid++Report控件设计的报表,不仅可以打印,还可以导出8种格式的报表文件。

    在Grid++Report的打印浏览中,有指定导出文件的对话框: 

     但是,软件的设计中,往往需要设计出,直接导出指定文件,或在打印报表的同时也导出指定格式的文件。

相关的参数和方法的调用,详见以下说明: 

    一、导出默认格式报表文件

    1、Grid++Report默认的导出格式,文件名默认后缀名.grd

    2、直接导出默认文件

procedure TForm1.btnSaveAsGRDClick(Sender: TObject);
begin
  if SaveDialog1.Execute() then
    GridppReport1.GenerateDocumentFile( SaveDialog1.FileName );
end;

    3、加载并查看默认文件
    此时,需要通过TGRPrintViewer的,显示打开的文件,TGRPrintViewer可以放在本窗口,也可以设置专用窗口中。如:ViewGRDForm   

procedure TForm1.btnLoadViewGRDClick(Sender: TObject);
begin
  if OpenDialog1.Execute() then
  begin
    ViewGRDForm.FFileName := OpenDialog1.FileName;
    ViewGRDForm.ShowModal();
  end;
end;

    二、导出指定类型文件
    1、导出文件指定类型文件有7种格式,分别为Excel,RTF,PDF,Html,Image,Text,CSV。

    2、软件中,可通过TCombobox控件,指定导出的文件类型:

function TForm1.GetExportType :GRExportType;
begin
  case ComboBox1.ItemIndex of
                0: Result := gretXLS;
                1: Result := gretRTF;
                2: Result := gretPDF;
                3: Result := gretHTM;
                4: Result := gretIMG;
                5: Result := gretTXT;
  else
    Result := gretCSV;
  end;
end;

     3、预定的7种的文件后缀名,获取文件名函数
 

function TForm1.GetExportFileName(sPathFile :String) :String;
var ExtFileName :string;
    FileName :string;
begin
  case GetExportType() of
                gretXLS: ExtFileName := 'xls';    // 扩展名
                gretRTF: ExtFileName := 'rtf';
                gretPDF: ExtFileName := 'pdf';
                gretHTM: ExtFileName := 'htm';
                gretIMG: ExtFileName := 'tif';
                gretTXT: ExtFileName := 'txt';
  else
    ExtFileName := 'csv';
  end;
  Result := ExtractFileDir(Application.ExeName) + '\' + sPathFile + '.' + ExtFileName;
end;

    三、导出文件方式一
    调用ExportDirect方法执行导出任务。
    1、IGridppReport.ExportDirect函数

Function ExportDirect(GRExportType: ExportType; FileName :String;ShowOptionDlg,DoneOpen :Boolean):Boolean;

    2、参数
    GRExportType ExportType 指定导出的文件类型。 
    FileName String 指定导出的完整文件路径与文件名称。 
    ShowOptionDlg boolean 指定是否在导出之前显示选项设置对话框。 
    DoneOpen boolean 指示是否在导出数据之后用关联程序打开导出文件。 

    3、返回值boolean,指示是否成功进行了数据导出。   

    4、调用执行

  GridppReport1.ExportDirect(GetExportType(), WideString(GetExportFileName(True)), ckbShowOptionDlg.Checked, True);


    四、导出文件方式二
    调用Export方法执行导出任务

    1、IGridppReport.Export方法
Function Export(DoneOpen:Boolean):Boolean;

    2、参数
    DoneOpen boolean 指示是否在导出数据之后用关联程序打开导出文件。 

    3、返回值bool,指示数据导出是否成功执行。   

    4、说明
    在调用Export方法之前一定要调用PrepareExport方法,在其后一定要调用UnprepareExport方法。
 
    5、调用执行

procedure TForm1.Button2Click(Sender: TObject);
var ExportOption :IGRExportOption;
begin
        //通过调用PrepareExport,Export, UnprepareExport这三个方法执行导出任务
        //这三个方法必须按顺序一起使用,PrepareExport返回导出选项对象的接口指针
        //可以设定导出选项对象的属性
   ExportOption := GridppReport1.PrepareExport(GetExportType());

// 此处代码,不使用ExportBegin事件时需要
  { 
  ExportOption.FileName := GetExportFileName(False);
  case GetExportType() of
     gretXLS: begin
                ExportOption.AsE2XLSOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
                ExportOption.AsE2XLSOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
              end;
     gretRTF: begin
                ExportOption.AsE2RTFOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
                ExportOption.AsE2RTFOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
             end;
     gretPDF: begin
              end;
     gretHTM: begin
                ExportOption.AsE2HTMOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
                ExportOption.AsE2HTMOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
              end;
     gretIMG: begin
              end;
     gretTXT: begin
                ExportOption.AsE2TXTOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
                ExportOption.AsE2TXTOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
              end;
     else begin
                ExportOption.AsE2CSVOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
                ExportOption.AsE2CSVOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
          end;
  end;
  }
  if ckbShowOptionDlg.Checked then
  begin
     //如果在选项对话框中选择了‘取消’按钮,则中止导出过程,
     //但UnprepareExport方法在中止前一定要被调用
    if Not ExportOption.ShowOptionDlg() then
    begin
      GridppReport1.UnprepareExport();
      Exit;
    end;
  end;
  GridppReport1.Export(True);
  GridppReport1.UnprepareExport();
end;

    五、ExportBegin事件
    ExportDirect和Export方法,执行前必要让TGridppReport控件,有一个ExportBegin事件,初始化数据。
    如果省略ExportBegin事件,可以在调用之前,执行下述代码即可。

procedure TForm1.GridppReport1ExportBegin(Sender: TObject; const pOptionObject: IGRExportOption);
begin
    //ExportBegin 事件在将报表导出之前会触发到,无论是调用 ExportDirect 与 Export 方法,
    //还是从打印预览窗口等地方执行导出,都会触发到 ExportBegin 事件。
    //通常在 ExportBegin 事件中设置导出选项参数,改变默认导出行为

    pOptionObject.AbortOpenFile := true;  //导出后不用关联程序打开导出文件,如导出Excel文件之后不用Excel打开
    pOptionObject.AbortShowOptionDlg := not ckbShowOptionDlg.Checked;  //导出之前不显示导出选项设置对话框

    //指定导出文件的完整路径与文件名称
    pOptionObject.FileName := GetExportFileName(false); //'d:\export\my.dat';

    //根据导出类型设置其特有的选项参数,有关选项参数的具体信息清参考帮助文档。
    //IGRExportOption是导出选项的基类,其它具体导出选项的接口名称都以IGRE2为前缀
    case pOptionObject.ExportType of
    gretXLS:
    begin
            pOptionObject.AsE2XLSOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
            pOptionObject.AsE2XLSOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;

            pOptionObject.AsE2XLSOption.ExportPageHeaderFooter := false;
            pOptionObject.AsE2XLSOption.SameAsPrint := false;
            pOptionObject.AsE2XLSOption.ExportPageBreak := false;
    end;
    gretRTF:
    begin
            pOptionObject.AsE2RTFOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
            pOptionObject.AsE2RTFOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
    end;
    gretPDF:
    begin
            pOptionObject.AsE2PDFOption.Author := 'My Author';
            pOptionObject.AsE2PDFOption.Subject := 'My Subject';
    end;
    gretHTM:
    begin
            pOptionObject.AsE2HTMOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
            pOptionObject.AsE2HTMOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
    end;
    gretIMG:
    begin
            pOptionObject.AsE2IMGOption.DPI := 300;
            pOptionObject.AsE2IMGOption.ImageType := greitPNG;
    end;
    gretTXT:
    begin
            pOptionObject.AsE2TXTOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
            pOptionObject.AsE2TXTOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
    end;
    else  //CSV
    begin
            pOptionObject.AsE2CSVOption.OnlyExportDetailGrid := ckbOnlyDetailGrid.Checked;
            pOptionObject.AsE2CSVOption.SupressEmptyLines := ckbSupressEmptyLines.Checked;
    end;
    end;
end;

    六、导出文件同时发送Email
    1、此项功能,在windows系统中,必须安装Email发送软件,并在系统中,调用指定该软件。

    2、参数设置与调用

procedure TForm1.btnExportMailClick(Sender: TObject);
var ExportOption :IGRExportOption;
begin
    ExportOption := GridppReport1.PrepareExport(GetExportType());

    //指定导出后发送EMail并设定发送EMail的参数
    ExportOption.MailExportFile := true;
    ExportOption.MailTo := 'name@domain.com';
    ExportOption.MailSubject := '报表导出并发送Email';
    ExportOption.MailText := '报表导出并发送Email的相关说明...';

    //导出后不打开文件查看
    GridppReport1.Export(FALSE);

    //最后一定要记得调用 UnprepareExport 释放导出过程中占据的资源
    GridppReport1.UnprepareExport();
end;

    七、GridppReport默认导出文件的对话框

     八、导出文件参数

//得到本程序默认的导出文件
function TForm1.GetExportFileName(IsDirect :Bool) :AnsiString;
var
        ExtFileName :string;
        FileName :string;
begin
        case GetExportType() of
                gretXLS: ExtFileName := 'xls';
                gretRTF: ExtFileName := 'rtf';
                gretPDF: ExtFileName := 'pdf';
                gretHTM: ExtFileName := 'htm';
                gretIMG: ExtFileName := 'tif';
                gretTXT: ExtFileName := 'txt';
        else
                ExtFileName := 'csv';
        end;
        if IsDirect then
                FileName := 'ExportDircet'
        else
                FileName := 'Export';
        Result := ExtractFileDir(Application.ExeName) + '\' + FileName + '.' + ExtFileName;
end;

注意导出的默认文件名:

    //指定导出文件的完整路径与文件名称
    pOptionObject.FileName := GetExportFileName(false); 

或  直接指定
    pOptionObject.FileName := 'D:\Temp\my.xls';
 

Grid++Report是一款C/S与B/S集成报表工具,功能全面易学易用。C/S开发适用于VB.NET, C#, VB, VC, Delphi, BCB, 易语言等。B/S开发适用于ASP.NET, ASP, PHP, JSP(Java)等,支持所有操作系统服务器与WEB服务器。开发C/S报表与B/S报表共享相同的开发知识与设计资源。提供独有的报表查询显示功能,让报表查询显示、打印、打印预览及数据导出等功能集成一体化实现。轻松实现表格报表、动态报表、多层表头、票据套打、交叉表、统计图表、表中表及各种特殊报表等,是中式报表的最佳开发工具。提供详尽帮助文档与各种编程平台下的丰富例子,安装中包括可直接运行例子程序,安装后即刻体验此报表工具。Unicode编码,多国语言集成支持。历经数年发展,多家有影响力的通用软件厂商选用,用户遍布各行各业,已经成为用户受众面最广的国产报表工具。 Grid++Report 报表组件具有如下特点: 1、支持C/S报表与B/S报表开发,支持全部主流开发语言。C/S开发:VB.NET、C#、VB、VC、Delphi等,B/S开发:ASP.NET、ASP、PHP、JSP等,支持所有WEB服务器。 2、多国语言集成支持与UNICODE编码支持,方便开发多国语言软件。 3、功能强大,稳定高效:实现表格报表、多层表头、票据套打、交叉表等各种报表非常简便;报表完全可编程定义,适合开发通用软件中的动态报表。 4、独有的报表查询显示功能:提供报表查询与输出的集成一次性实现,保证数据不同展现方式的一致性与完整性。 5、报表数据来源丰富:支持绑定(报表数据拉模式)与非绑定(报表数据推模式),一切数据库数据与其它数据都可以作为报表数据源。 6、提供图表功能,包括:饼图、叠加饼图、柱状图、气泡图、折线图、曲线图、散列点图等,支持三维图形。 7、报表数据导出格式丰富,格式包括:Excel、RTF、PDF、图像、HTML、文本,CSV 等。 8、支持数十种一维条码,支持PDF417与QRCode这两种最常用的二维条码,条码打印精度高且易读取。 9、提供脚本编程功能,直接在报表模板中自定义报表行为,采用通用的JScript与VBScript脚本引擎。 10、特有的分组单元格合并功能,轻松实现常见的中国式报表分组在列中展现并垂直居中要求。 11、全中文界面,针对中国式报表进行了很多专门实现,如:表格报表、财务金额线、大写金额、发票圈叉图标、负数红字、多层表头等。很多在国外报表工具中很难实现的功能都可以轻易实现。 12、提供丰富交互事件,轻松实现报表行为自定义、穿透(透视)查询和报表交互。 13、重新发布简单:C/S报表只需分发两个DLL文件;B/S报表只要在WEB服务器布署报表网页与报表插件安装包,服务端不需其它配置,客户端零配置。 14、易学易用:完全可视化设计,完善的复制/剪切/粘贴(Copy/Cut/Paste)和恢复重做(Undo/Redo)功能,专业的拖放操作与即时编辑功能。 15、编写了完整详尽的帮助文档。提供了丰富例程,C/S报表包括VB.NET、C#、VB、VC、Delphi、C++Builder、VFP、中文编程易语言,B/S报表包括ASP.NET,ASP,PHP,JSP。 Grid++Report 网站:http://www.rubylong.cn Grid++Report 演示:http://www.rubylong.cn/WebReport
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值