Проблема с открытием данных в Excel: ошибка в части содержимого в книге (openspout)
Использую php8.2, "openspout/openspout: ^4.17.2". Все тесты проходят удачно и все генерируется в Excel нормально. Но на продакшен-сервере иногда открываются данные с ошибкой:
Ошибка в части содержимого в книге
Не могу найти причину, почему это происходит. Все HTML-сущности обрабатываю через htmlspecialchars_decode(). Сколько не провожу тестов, не могу поймать ошибку из-за чего это происходит. Может быть, у вас есть варианты, как узнать, почему и где ошибка. Есть сломанный файл Excel, но не могу его скинуть из-за конфиденциальности.
Ответы (1 шт):
Проблема была в том, что в ячейке в начале строки стоял знак '=', Excel думает что это формула.
Его необходимо экранировать, разные способы, которые я нашел в интернете, не помогли, например добавить символ '(апостроф), мне помогло добавление табуляции или пробела в начало. Пример:
$cellValue = " " . $cellValue;
Или обрезать вначале через ltrim
$cellValue = ltrim($cellValue,'=');