分 Sheet 导出 Excel

  • 文档创建者:Arri
  • 编辑次数:2次
  • 最近更新:Leo.Tsai 于 2020-02-14
  • 1. 概述

    1.1 问题描述

    有时候用户模板做了参数为空选择全部,想在正常预览的基础上,做一个按钮导出 Excel,能够实现按照一个供应商单独一个 Sheet 页的效果。

    1.2 实现思路

    • 方案一:用 批量打印 的 URL 格式。

    • 方案二:先按供应商分组分页预览,然后用 URL 直接分 Sheet 页导出。

    2. 示例

    2.1 方案一

    2.1.1 实现步骤

    使用内置的模板 GettingStared.cpt 实现方案一的效果,一个地区一个 Sheet页,给参数面板中的导出 Excel按钮添加点击事件。事件参数为:area,值为公式:sql("FRDemo","select distinct 地区 from 销量",1)。JS代码如下:

    var url = '/WebReport/ReportServer?reportlets=';
    var pars = '&format=excel&extype=sheet&isExcel2003=true&__filename__=测试';
    var path = "${reportName}";
    var json = [];
    for (var i = 0; i < area.length; i++) {
    var sheet = {
    reportlet: path,
    "地区": area[i]
    };
    json.push(sheet);
    }
    alert("json转换前:"+json);
    alert("json转换后:"+JSON.stringify(json));
    url += JSON.stringify(json);
    url += pars;
    alert(url);
    //window.open(FR.cjkEncode(url));

    Snag_68bbe1.png

    2.1.2 效果预览

    报表预览时,点击导出Excel按钮,依次弹出如下对话框:

    1.png

    2.png

    3.png

    2.2 方案二

    2.2.1 实现步骤

    将模板中的数据按照地区分页,用层次坐标HIERARCHY(A1)获取上一个地区的值,当前地区与上一个地区值不同时,条件属性行前分页。参数面板中得导出Excel按钮添加一个点击事件,JS 代码如下:

    var url = 'http://localhost:8075/WebReport/ReportServer?reportlet=GettingStarted.cpt';
    var pars = '&format=excel&extype=sheet&isExcel2003=true&__filename__=测试';
    url += pars;
    alert(url);
    window.open(FR.cjkEncode(url));

    2.png

    2.2.2 效果预览

    报表预览时,点击导出Excel按钮,弹出如下对话框:

    Snag_741141.png

    3. 模板下载

    方案一:

    已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\ExcelImport\分Sheet页导出Excel方案一.cpt

    点击下载模板:分Sheet页导出Excel方案一.cpt

    方案二:

    已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\ExcelImport\分Sheet页导出Excel方案二.cpt

    点击下载模板:分Sheet页导出Excel方案二.cpt


    附件列表


    主题: 报表应用
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!