Как исправить «Некоторые символы формулы могут отображаться неправильно из-за отсутствия шрифтов Symbol, Windings ...» для XLSX, сгенерированного с помощью Apache POI

У меня есть следующий код:

    XSSFFont font = createFont(workBook);
    font.setColor(IndexedColors.WHITE.getIndex());
    font.setFontName("Arial");
    font.setBold(true);

    XSSFColor BLUE_WAVE = new XSSFColor(new byte[]{ (byte) 60,
                                                    (byte) 120,
                                                    (byte) 216 },
                                        new DefaultIndexedColorMap());
    
    CellStyle style = workBook.createCellStyle();
    style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
    style.setFillForegroundColor(BLUE_WAVE);
    style.setFont(createHeaderFont(workBook));

    XSSFCell cell = row.createCell(cellIndex);
    cell.setCellType(cellType);
    cell.setCellStyle(style);
    
    // ...
    // Popuplation of cells goes here
    // ...

Как показано выше, ячейки имеют стиль. Я не использую никаких причудливых шрифтов. Мой код успешно генерирует файл .xlsx без каких-либо ошибок. Когда я пытаюсь открыть его с помощью офиса WPS (под Ubuntu), он показывает следующее предупреждение (и затем загружает файл в обычном режиме):

В файле xlsx нет формул.

У меня есть следующие зависимости Gradle:

implementation("org.apache.poi:poi:5.2.3")
implementation("org.apache.poi:poi-ooxml:5.2.3")

Я не уверен, как отладить и исправить это. Я не хочу, чтобы он показывал какие-либо предупреждения в WPS или любом другом офисном приложении. Любые идеи будут высоко оценены!

Кажется, это проблема WPS Office. Microsoft Excel не будет выдавать это предупреждение. Вы исправляете это, нажав [x] Больше не сообщать.

Axel Richter 13.02.2023 08:27
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это предупреждающее сообщение только от WPS Office. Microsoft Excel не будет выдавать это предупреждение.

Причина в отсутствии шрифтов, которые нужны WPS Office для отображения некоторых формул, вставленных через Редактор формул. См. Напишите уравнение или формулу или Как вставить уравнения в электронную таблицу WPS.

Только эти уравнения подразумеваются сообщением. Это не имеет ничего общего с формулами ячеек электронной таблицы, такими как =SUM(A1:A100) или подобными.

Вы исправляете это, нажав [x] Больше не сообщать.

Или вы можете установить пропущенные шрифты. Смотрите https://askubuntu.com/questions/861588/wps-office-equation-editor.

Другие вопросы по теме