Skip to content

Ошибка экспорта Excel - Справка FineReport | Разработка отчетов | Отчеты | Учебные пособия

Ошибка экспорта Excel

1. java.lang.NullPointerException

Описание проблемы:

После экспорта компонента приборной панели в Excel при открытии Excel появляется ошибка: errorCode:500, errorMsg: java.lang.NullPointerException, как показано на следующем рисунке:

1.png

При просмотре журнала FineBI %FineBI%/logs/fanruan.log соответствующая ошибка отображается следующим образом:

  
  
java.lang.NullPointerException at 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.&lt  
  
;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&nbsp.  
  
;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 SheetUtil.getDefaultCharWidth(SheetUtil.java:254)

Анализ причин:

Эта ошибка вызвана тем, что в системе Linux отсутствуют соответствующие ресурсы шрифтов, поэтому необходимо установить менеджер шрифтов для вашей системы.

Решение:

Выполните следующую команду, чтобы установить управление шрифтами в Linux:

yum install fontconfig

Если вы используете docker для создания базового образа, выполните следующую команду:

RUN yum -y install fontconfig RUN fc-cache --forc

2. java.lang.IllegalArgumentException:Рабочая книга уже содержит лист с таким именем

Описание проблемы:

Экспортируйте Excel, откройте Excel и получите сообщение о следующей ошибке:

image.png

Анализ причин:

Именование листов Excel подчиняется следующим правилам:

1) имя листа не может быть больше 31 (включая английские, китайские иероглифы, |, () и т.д., но не может содержать:, /, ? *, [] и т.д.), использование poi инструментов для генерации программы, переданной в строку длиной более 31, будет автоматически перехвачено, это приведет к тому, что два имени станут одинаковыми, появление листа с именем исключение!

(2) Имя листа не может быть пустым, при пустом имени также будет выдано сообщение об ошибке.

Решение:

Измените имя компонента и соответствующую длину, чтобы привести его в соответствие с правилами именования excel.

3. Не удалось инициализировать класс sun.awt.X11GraphicsEnvironment

Описание проблемы:

Не удалось экспортировать Excel в среде Linux, проверьте журнал или нажмите F12, чтобы войти в консоль, есть ошибка: Could not initialize class sun.awt.

Анализ причин:

В Linux при экспорте Excel из приборной панели для обработки изображений используется пакет изображений Java. Для обработки изображений виртуальной машине Java необходима поддержка локального x-сервера, если ее нет, то возникнет эта ошибка.

Решение:

  • Непосредственная установка FineBI

Найдите файл finebi.vmoption по пути %FineBI5.1%\bin, добавьте в него -Djava.awt.headless=trueи сохраните файл. Сохраните файл, как показано ниже:

image.png

  • FineBI развернут на Tomcat

Перейдите в каталог %Tomcat%/bin, найдите и отредактируйте конфигурационный файл catalina.sh и добавьте параметр-Djava.awt.headless=true**,** подробнее см. в разделе: Экспорт настроек Excel.

4. com.finebi.common.exception.execute.FineOutOfMaxRowException: ограничение на количество строк: xxxxxxxx

Описание проблемы:

Экспортируйте Excel, откройте Excel и получите сообщение о следующей ошибке:

Анализ причин:

Объем экспортируемых данных Excel превышает предельный объем данных.

Решение:

Сократите объем экспортируемых данных с помощью фильтрации и т. д.

5. объем данных превышает лимит: Export Column Out Of Limit!

Описание проблемы:

При экспорте в Excel дашборд сообщает об ошибке, связанной с превышением лимита объема данных:более 100 столбцов не могут быть экспортированы, обратитесь к администратору, как показано на следующем рисунке:

2.png

Анализ причин:

Количество экспортируемых столбцов превышает 100.

Решение:

Добавьте параметр в таблицу fine_conf_entity в библиотеке конфигурации проекта finedb

  • id: SystemOptimizationConfig.crossExportColumnLimit
  • Значение: числовое значение, не рекомендуется сильно изменять значение.