反饋已提交
網絡繁忙
本文介紹大數據集匯出的常見問題及解決方案,並梳理出了大數據集匯出常見問題的排查思路,方便使用者再遇到類似問題減少排查時間,減小排查難度。
大數據集匯出詳情請參見:JS實現大數據集匯出Excel、大數據集匯出Excel插件
1)JS 獲取不到 URL 中的參數:JS 匯出其實是針對範本或者資料,不預覽也能匯出,不依賴 session,URL 傳參數是在預覽程式中傳遞不是範本本身的屬性也不是伺服器的環境。
2)在 JS 的 URL 部分加上&_filename_=來指定匯出檔案名稱,匯出檔案名稱最後面會自動連結資料集名稱,不支援去掉連結的dsname 。
3)參數過多情況匯出報錯 414 。
4)獲取多選下拉樹元件時為空陣列,而不是空字串,將導致資料查詢參數為空查詢全部失敗。
5)不支援行動端。
1)匯出的 Excel 是透過 SQL 語句直接從資料庫中獲取的資料,並非報表中的資料,因此報表中設定的資料格式等無法被匯出。
2)匯出不支援 CSV 格式。
3)大數據集匯出 Excel 欄位包含"/"時按鈕配置無法儲存。
4)決策系統記錄的匯出次數不包括大數據集匯出 Excel 插件的匯出次數。
5)不支援按鈕同事設定多個事件。
6)不支援篩選匯出表欄位名稱包含符號"{}"。
7)不支援 Spider 資料集。
8)不支援行動端。
1)超過 5s 顯示進度條。
2)資料格式變化,100.0 匯出後顯示為 100 。
3)大數據集匯出 Excel 每 100W 行會到下一個 Sheet 。
4)匯出的資料量不超過 1000W 行 * 20 列,資料量超大可能會導致僅匯出部分資料。
JS 實現大數據集匯出遇到問題時的常見排查思路如下所示:
使用大數據集匯出插件匯出時,遇到問題時的常見排查思路如下所示:
問題描述
JS 實現的大數據集匯出,使用者使用下拉樹元件,當選擇參數的時候才可以正常匯出資料,如果不選擇內容,匯出的就是空的,但是不選擇內容的時候,點選查詢是能夠查出資料的。
原因分析
JS 大數據集匯出,多選下拉樹元件值不選時,獲取到為空陣列"[]",而不是空字串"",導致資料集查詢那邊參數為空查詢全部失敗。
解決方案
手動在 JS 中給參數賦空值。
大數據集匯出 Excel 每 100W 行會到下一個 sheet 。
行式引擎開啟後,大數據量 Excel 匯出行高過小,用流式匯出插件也是一樣的情況。
如果是 8.0 和 9.0 遇到了這種情況,就調大行高,酌情調整,能夠有效的改善這個情況。如果是 10.0 遇到了這種情況,可以透過大數據集匯出/新引擎解決。
匯出 1300w 行 26 列左右的資料,只匯出了部分。
JS實現大數據集匯出Excel 建議匯出的資料量不超過「1000W 行 * 20 列」,資料量超大可能會導致僅匯出部分資料。
大數據集匯出針對一個參數對應多個值的情況,字串連結是否支援 JSON 陣列格式?大數據集匯出時,某個參數需要傳遞多值,測試用 JSON 陣列格式放到API參數中,但是匯出為空,控制台顯示匯出成功語句,但是匯出的 Excel 沒有內容。
連結字串用了以下幾種形式:
{val:[\"華北\"]} ==匯出為空
{val:[\"華北\",\"華東\"]}==匯出為空
{val:\"華北\"} ==匯出為華北
{val:['華北','華東']} ==匯出為空
{val:[華東','華北]} ==匯出提示報錯:Unexpected End: at character 15 of {val:[華東','華北]}{val:\"華北\",val:\"華東\"};==匯出為華東
參數連結的方式錯了
華北','華東 需要被""包圍起來,但是""需要轉義防止被解析,所以寫成var paramStr = encodeURIComponent("{val:\"華北','華東\"}")//資料集傳參var colNames = encodeURIComponent("地區,銷售員,產品類型,產品,銷量")//指定匯出的資料欄,匯出欄位按此順序排列,為空預設匯出所有_g().directExportToExcel("ds5","匯出測試",paramStr,colNames)
資料集總資料量 13 萬,匯出 Excel 後只有 65535 條,將 SQL 中的 order by 註釋掉就能匯出全部。&format=excel匯出、excel按鈕匯出、大數據集匯出等方法均能復現。
使用者資料庫的配置問題。
將 order by 註釋,使用大數據集匯出。
大數據集匯出插件,如果欄位名有“/”符號,設定的匯出欄位名會無法儲存。
目前不支援特殊字元,HTML 解析會有問題。
系統和設計器都升級 JAR(2021-11-30)後,原先沒有問題的範本,使用了大數據集匯出插件匯出的,在設計器本地目錄看沒有問題,但是設計器遠端連結伺服器,以及在伺服器平台掛載看都是匯出沒有資料只有欄位名稱。
升級到 2021-12-15 及之後的 JAR 包解決。
在使用新自適frm且使用大數據集匯出excel匯出時,資料集使用的是mysql5.7.23,會報錯“不支援此資料庫”,不使用新自適應報表時可以正常匯出。
大數據集匯出插件更新升級至 V1.0.9 。
更新插件至 V1.1.1 及之後。
更新插件至 V1.1.5 及之後。
更新插件至 V1.1.6 及之後。
2020.04.26以及以後的jar不支援獲取url的參數。
範本 SQL 參數資料集里加上參數,如下圖所示:
使用者資料量較大,匯出時間較久,超出了容器設定的逾時時間。
調整容器的逾時時間即可。
例如 Tomcat 容器可以修改%Tomcat_HOME%\conf 目錄下的 server.xml 檔案,適當調整 connectionTimeout 參數值,如下圖所示:
Tomcat 中預設連結逾時時間是20秒,一般最好設定為60秒,進而避免後台程式處理時間長導致連結斷開,進行以下修改即可: connectionTimeout="60000"
11.5.1 及以上版本,匯出前或匯出程式中,彈窗提示:大數據集匯出異常。
點選「顯示錯誤堆疊」顯示報錯:
匯出前:磁碟剩餘空間不足 xxGB,無法開始匯出操作,請清理磁碟或聯絡管理者後重試
匯出中:磁碟剩餘空間不足 xxGB,系統已終止匯出操作,請釋放足夠空間後重試
磁碟剩餘空間不足導致無法匯出或匯出中止。
清理磁碟。
使用者使用的 spider 資料集,明細表,420w 左右的資料量,把資料欄拖到儲存格,設定了邊框就沒有其他任何特別的設定了。 使用者想把範本匯出成 EXCEL,在資料集預覽是有資料的,用普通的 EXCEL 匯出匯出不了,想問大數據集匯出可以嗎?
大數據集匯出目前只支援關係型資料庫,不支援 spider 資料集或者程式資料集等。
建議使用關係型資料庫的普通資料集。
按鈕寫 JS 進行大數據集匯出,如果資料量比較大,有一段時間頁面看起來沒有反應。
大數據集匯出是做了進度條的,但是預設在 5s 之後才會開始顯示。
1)使用者在 IE 瀏覽器環境下使用 FineReport 10.0 的大數據集匯出功能匯出資料集結果時出現 HTTP 400 報錯;
2)使用者在 IE 瀏覽器環境下點選郵件中排程管理報表地址後出現 HTTP 400 報錯。
HTTP 400 報錯只在 IE 瀏覽器環境下發生,使用 Chrome 核心的瀏覽器可正常存取,經驗證 URL 中含有中文,並且複製之後會轉換為 UTF-8 的編碼。
在 IE 瀏覽器裏,點選「設定>Internet選項>進階」,勾選「傳送非 Intranet URL 的 UTF-8 查詢字串」和「以 UTF-8 形式傳送 URL 路徑」缺一不可,如下圖所示:
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙