历史版本3 :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 = '/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