儀表板組件導出Excel 後,打開Excel 報錯:errorCode:500, errorMsg: java.lang.NullPointerException,如下圖所示:
查看 FineBI 日志%FineBI%/logs/fanruan.log,对应的报错如下:
java.lang.NullPointerExceptionat sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1264)at sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:219)at sun.awt.FontConfiguration.init(FontConfiguration.java:107)at sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:774)at sun.font.SunFontManager$2.run(SunFontManager.java:431)at java.security.AccessController.doPrivileged(Native Method)at sun.font.SunFontManager.
該報錯是由於Linux 系統沒有相關font 資源導致,需要為系統安裝字體管理器。
在Linux 中執行如下命令安裝字體管理:
yum install fontconfig
如果使用docker 製作基礎鏡像運行以下命令:
RUN yum -y install fontconfig RUN fc-cache --forc
導出Excel,打開Excel 報錯如下:
Excel中sheet 命名有如下規則:
1)sheet 名稱不能多於31個(包含英文、漢字、| 、()等,但是不能包含: 、/、?、*、[]等),程序中使用poi 工具來生成的時候,傳進去大於31 個長度的字符串時,會被自動截取,便會導致兩個名字變為一樣的,出現sheet同名異常。
2)sheet 名字不能為空,為空也會報錯。
修改組件名稱以及對應的長度,使其符合excel命名規則。
Linux 環境下導出Excel 失敗,查看日誌或按F12 進入控制台,出現報錯:
在Linux下,儀表板導出Excel 時,會用到Java 的圖片包來處理圖片。而Java 虛擬機在處理圖片時需要本地的x-server 支持,若是沒有就會出現該報錯。
在路徑%FineBI5.1%\bin下找到finebi.vmoption文件,在文件內新增-Djava.awt.headless=true,保存文件。如下圖所示:
進入%Tomcat%/bin目錄,找到並編輯配置文件catalina.sh,增加-Djava.awt.headless=true參數,詳情請參見:導出Excel 設置。
導出 Excel,打開 Excel 報錯如下:
導出的Excel數據量超過數據量限制。
通過篩選等方式減少導出數據量。