历史版本5 :JS实现分Sheet导出Excel 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

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\分Sheet页导出Excel方案一.cpt

点击下载模板:test1.cpt

方案二:

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

点击下载模板:test2.cpt