帆軟報表批量導出到excel

由於項目及業務需要,有時候一個頁面會有n張報表,那麼這個時候就需要一鍵導出功能(方便省事)

首先項目肯定要集成帆軟報表工具,帆軟的各種jar包以及靜態資源(js,css)等也會集成到項目裏。

直接上代碼,(主要有兩個方法)

function printReport(name, sex, age ){
 var params="";
 if(""!=name){
  params+=",NAME:"+name;
 }
 if(""!=sex){
  params+=",SEX:"+sex;
 }
 if(""!=age){
  params+=",AGE:"+age;
 }
 var items="{reportlet:zxt/test/test1.cpt"+params+"}" 
          +",{reportlet:zxt/test/test2.cpt"+params+"}";
 doExport(items);
}

function doExport(items){
     var form =$("<form>");   
    form.attr('style','display:none'); 
    form.attr('target', '');
    form.attr('method', 'post');
    form.attr('action',"${bmw}/ReportServer");
    var input1 = $('<input>');
    input1.attr('type', 'hidden');
    input1.attr('name', 'reportlets');
    input1.attr('value',FR.cjkEncode("("+items+")"));   
     var input2 = $('<input>');
    input2.attr('type', 'hidden');
    input2.attr('name', 'extype');
    input2.attr('value', 'simple');
    var input3 = $('<input>');
    input3.attr('type', 'hidden');
    input3.attr('name', 'format');
    input3.attr('value', 'excel');
    var input4 = $('<input>');
    input4.attr('type', 'hidden');
    input4.attr('name','__filename__');
    input4.attr('value', '報表批量導出'); 
    $('body').append(form);   
    form.append(input1);  
    form.append(input2);
    form.append(input3);
    form.append(input4);
    form.submit();
}

 

${bmw} 指的是項目的訪問路徑,另外FR.cjkEncode()用的是帆軟報表自帶的方法,需要導入帆軟提供的兩個js文件

${bmw}/ReportServer?op=emb&resource=finereport.js&inter=zh_CN&__fr_locale__=&__v__=2017.01.20.14.49.47.271

${bmw}/ReportServer?op=emb&resource=finereport.chart.js&__v__=2017.01.20.14.49.47.271

然後調用printReport()方法就可以實現將多張報表導出到一個Excel文件裏的多個sheet。

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章