反饋已提交
網絡繁忙
Excel 匯出時,使用者希望實現分組分 Sheet 匯出,即每個 Sheet 頁中報表格式相同,內容不同。如下圖所示,Sheet1為華東地區銷售概況,Sheet2 為華北地區銷售概況。
透過 JavaScript 實現:為報表 URL 新增可以實現「分頁匯出」的參數,參數包括「匯出格式參數」和「匯出頁數參數」。
注:若匯出時分頁過多,在 URL 中連接的參數會因過多而導致 URL 過長,進而導致瀏覽器報 400(請求頭太大),無法正常匯出。
場景 :參數查詢報表,匯出後每個參數值對應的報表內容在一個 Sheet 頁 。
使用 %FR_HOME%\webapps\webroot\WEB-INF\reportlets路徑下的範本 GettingStarted.cpt 作為「場景 1」範例 。
開啟範本後先對範本做部分修改,修改內容如下:
在 A1 儲存格將標題改為公式: $地區+"地區銷售概況",修改報表 Sheet 名稱為公式: =A4(等號需手動輸入),如下圖所示:
在參數面板中新增一個「按鈕元件」,將按鈕名稱修改為「匯出EXCEL」。如下圖所示:
選中「匯出EXCEL」按鈕元件,在「元件設定>事件」處,新增一個「點選」事件。新增一個事件參數,參數名為「area」,值為「公式」類型:sql("FRDemo","select distinct 地區 from 銷量",1)。
輸入 JavaScript 程式碼如下:
var url = 'report?reportlets=';//定義urlvar pars = '&format=excel&__filename__=1';//設定匯出格式和匯出檔案名稱var path = "${reportName}";//獲取範本名稱和路徑//獲取範本中參數值,以陣列形式儲存,每個參數值對應一個sheetvar 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);//列印urlwindow.open(url);
步驟如下圖所示:
注:如果是掛載到平台,那麼還需要修改下程式碼裏面的 URL 才行,否則會報錯:該節點已被刪除。
修改的程式碼如下:
var url = '/webroot/decision/view/report?reportlets=';//定義urlvar pars = '&format=excel&__filename__=1';//設定匯出格式和匯出檔案名稱var path = "${reportName}";//獲取範本名稱和路徑//獲取範本中參數值,以陣列形式儲存,每個參數值對應一個sheetvar 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);//列印urlwindow.open(url);
儲存範本,點選「分頁預覽」,點選「匯出EXCEL」按鈕,匯出後一個地區一個 Sheet 頁,效果如 1.1 節預期效果所示。
注:不支援行動端。
點選下載範本:JS實現參數報表分Sheet匯出Excel.cpt
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙