反馈已提交

网络繁忙

JS实现分Sheet导出Excel

  • 文档创建者:Arri欧阳正萍
  • 历史版本:23
  • 最近更新:Tracy.Wang 于 2026-08-07
  • 1. 概述

    1.1 预期效果

    Excel 导出时,用户希望实现分组分 Sheet 导出,即每个 Sheet 页中报表格式相同,内容不同。如下图所示,Sheet1为华东地区销售概况,Sheet2 为华北地区销售概况。

    251B647E-124F-47C9-B2FB-BAA2A305ED02.GIF

    1.2 功能简介

    通过 JavaScript 实现:为报表 URL 添加可以实现「分页导出」的参数,参数包括「导出格式参数」和「导出页数参数」。

    注:若导出时分页过多,在 URL 中拼接的参数会因过多而导致 URL 过长,从而导致浏览器报 400(请求头太大),无法正常导出。

    场景 :参数查询报表,导出后每个参数值对应的报表内容在一个 Sheet 页。

    2. 根据参数分 Sheet

    2.1 准备模板

    使用 %FR_HOME%\webapps\webroot\WEB-INF\reportlets路径下的模板 GettingStarted.cpt 作为「场景 1」示例 。

    打开模板后先对模板做部分修改,修改内容如下:

    在 A1 单元格将标题改为公式: $地区+"地区销售概况",修改报表 Sheet 名称为公式: =A4 (等号需手动输入),如下图所示:

    2.2 设置分页导出

    2.2.1 添加导出按钮

    在参数面板中添加一个「按钮控件」,将按钮名字修改为「导出EXCEL」。如下图所示:

    1617259051335910.png

    2.2.2 添加点击事件

    选中「导出EXCEL」按钮控件,在「控件设置>事件」处,添加一个「点击」事件。添加一个事件参数,参数名为「area」,值为「公式」类型:sql("FRDemo","select distinct 地区 from 销量",1)

    输入 JavaScript 代码如下:

    var url = 'report?reportlets=';//定义url
    var pars = '&format=excel&__filename__=1';//设置导出格式和导出文件名称
    var path = "${reportName}";//获取模板名称和路径
    //获取模板中参数值,以数组形式存储,每个参数值对应一个sheet
    var json = [];
    for (var i = 0; i < area.length; i++) {
    var sheet = {
    reportlet: path,
    地区: area[i]
    };
    json.push(sheet);
    }
    jsonStr = encodeURIComponent(JSON.stringify(json));//对url进行encodeURIComponent编码
    url += jsonStr;//给url添加模板参数
    url += pars;//给url添加导出参数
    alert(url);//打印url
    window.open(url);

    步骤如下图所示:

    1617259913126831.png

    注:如果是挂载到平台,那么还需要修改下代码里面的 URL 才行,否则会报错:该节点已被删除。

    Snag_a49602a.png

    修改的代码如下:

    var url = '/webroot/decision/view/report?reportlets=';//定义url
    var pars = '&format=excel&__filename__=1';//设置导出格式和导出文件名称
    var path = "${reportName}";//获取模板名称和路径
    //获取模板中参数值,以数组形式存储,每个参数值对应一个sheet
    var json = [];
    for (var i = 0; i < area.length; i++) {
    var sheet = {
    reportlet: path,
    地区: area[i]
    };
    json.push(sheet);
    }
    jsonStr = encodeURIComponent(JSON.stringify(json));//对url进行encodeURIComponent编码
    url += jsonStr;//给url添加模板参数
    url += pars;//给url添加导出参数
    alert(url);//打印url
    window.open(url);

    2.3 效果预览

    保存模板,点击「分页预览」,点击「导出EXCEL」按钮,导出后一个地区一个 Sheet 页,效果如 1.1 节预期效果所示。

    注:不支持移动端。

    3. 模板下载

    已完成模板可参见:

    %FR_HOME%\webapps\webroot\WEBINF\reportlets\doc\SpecialSubject\ExportReport\JS实现参数报表分Sheet导出Excel.cpt

    点击下载模板:JS实现参数报表分Sheet导出Excel.cpt

    附件列表


    主题: 报表专题
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持