分 Sheet 导出 Excel

  • 文档创建者:Arri
  • 编辑次数:5次
  • 最近更新:Leo.Tsai 于 2020-07-17
  • 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 = 'report?reportlets=';
    var pars = '&format=excel&__filename__=1';
    var path = "${reportName}";
    var json = [];
    for (var i = 0; i < area.length; i++) {
    var sheet = {
    reportlet: path,
    地区: area[i]
    };
    json.push(sheet);
    }

    JSON = encodeURIComponent(JSON.stringify(json));

    url += JSON;
    url += pars;
    alert(url);
    window.open(url);

    image.png

    2.1.2 效果预览

    报表预览时,点击导出Excel按钮,即可实现导出功能

    2.2 方案二

    2.2.1 实现步骤

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

    var url = 'http://localhost:8075/webroot/decision/view/report?viewlet=test2.cpt';
    var pars = '&format=excel&extype=sheet&__filename__=2';
    url += pars;
    alert(url);
    window.open(FR.cjkEncode(url));

    image.png

    2.2.2 效果预览

    报表预览时,点击导出 Excel 按钮,即可实现导出功能.

    3. 模板下载

    方案一:

    已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\ExcelImport\test1.cpt

    点击下载模板:test1.cpt

    方案二:

    已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\ExcelImport\test2.cpt

    点击下载模板:test2.cpt

    附件列表


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