儀錶板組件匯出 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.<init>(SunFontManager.java:376)at sun.awt.FcFontManager.<init>(FcFontManager.java:35)at sun.awt.X11FontManager.<init>(X11FontManager.java:57)at sun.reflect.GeneratedConstructorAccessor654.newInstance(Unknown Source)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:423)at java.lang.Class.newInstance(Class.java:442)at sun.font.FontManagerFactory$1.run(FontManagerFactory.java:83)at java.security.AccessController.doPrivileged(Native Method)at sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)at java.awt.Font.getFont2D(Font.java:491)at java.awt.Font.canDisplayUpTo(Font.java:2060)at java.awt.font.TextLayout.singleFont(TextLayout.java:470)at java.awt.font.TextLayout.<init>(TextLayout.java:531)at com.fr.third.v2.org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:254)
該報錯是由於 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 進入控制檯,出現報錯:Could not initialize class sun.awt.X11GraphicsEnvironment
在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 時報錯資料量超過限制:超過100欄無法匯出,請聯系管理者,如下圖所示:
匯出欄數超過100欄。
在工程配置庫 finedb 的 fine_conf_entity 表中新增一個參數
id為:SystemOptimizationConfig.crossExportColumnLimit
value為:數值,不建議將數值修改很大。
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙