1. 程式人生 > 其它 >大資料集匯出動態引數值並重命名檔案

大資料集匯出動態引數值並重命名檔案

技術標籤:帆軟Finereport

大資料集匯出動態引數值並重命名檔案

一.應用場景

技術:大批量匯出的時候會對伺服器、網路傳輸、資料庫造成一定壓力。

業務(稅金賬單明細匯出):

  1. 資料來源涉及8個數據庫表,每次匯出量10w+,查詢所需時間15s+,匯出時再次等待
  2. 主要功能是查詢結果匯出後對外發送

基於以上兩點,選擇大資料集匯出 Excel更適合業務場景

二.功能描述

大資料集匯出是一種佔用資源少且速度快的Excel匯出方式,無需前臺資料展示即可進行後臺流式匯出。

主要針對明細表,通過js程式碼呼叫介面,實現跳過報表計算直接取數匯出。

三.介面簡介

大資料集匯出介面:directExportToExcel: function (dsName, fileName, params, colNames)

四.介面示例

//介面為directExportToExcel: function (dsName, fileName, params, colNames)
//注意引數中的特殊字元需要進行url編碼,比如大括號,冒號等。
var paramStr = encodeURIComponent("{param1:1,param2:\"21','22\",param3:\"text\",...}")
//資料集傳參,字串引數建議寫成格式\"text\"
var colNames = encodeURIComponent("col1, col2, col3,..."
) //指定匯出的資料列,匯出欄位按此順序排列,為空預設匯出所有 _g().directExportToExcel("資料集名稱", "匯出檔名稱", paramStr, colNames)

五.注意事項

  1. 此功能無法直接匯出 date/datetime 型空值,需要在 JDBC 資料連線的 URL 後新增 zeroDateTimeBehavior=convertToNull 引數。
  2. 建議匯出的資料量不超過「1000W 行 * 20 列」,資料量超大可能會導致僅匯出部分資料。
  3. 匯出的 Excel 是通過 SQL 語句直接從資料庫中獲取的資料,並非報表中的資料,因此報表中設定的資料格式等無法被匯出。
  4. 不支援移動端。

六.模板設計

  1. 新建普通模板,新建資料集,SQL語句如下:
    1. 稅金賬單
    2. wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

  2. 設計報表