PavelUstyugov
@PavelUstyugov
Самозанятый веб-разработчик

Почему при генерации Excel из php некоторые текстовые ячейки из чисел становятся вида 2,0617E+17?

Генерирую Excel файл из php laravel библиотекой Maatwebsite\Excel
К несчастью заметил. что некоторые поля, которые должны быть текстовыми преобразовываются вот в такой непонятный вид: 2,0617E+17
При этом в базе mysql они записаны как string и выглядят нормально. Например, 206170000011900058
Как можно избежать такого преобразования? Даже когда захожу уже в файл xls и выбираю формат ячейки "Текст", все равно к нормальному виду она уже не приводится. даже поля ИНН преобразовываются.
142000043662 преобразовался в 1,42E+11

Есть подозрение, что такое возникает когда в тексте идет более трех нулей. Но это не точно.
Как мне это побороть?

При этом если сохранить какой-нибудь символ, отличный от цифры в начале строчки, например "№".$result["number"], то Excel уже не будет рушить данные принимая их за числа. Но это так себе выход.
  • Вопрос задан
  • 100 просмотров
Пригласить эксперта
Ответы на вопрос 2
@aleksejjjj
Должно так работать. https://laravel-excel.maatwebsite.nl/3.1/exports/c... Вам нужно будет:
/**
 * @return array
 */
public function columnFormats(): array
{
    return [
        // Ваша колонка вместо 'A' 
        'A' => NumberFormat::FORMAT_TEXT,
    ];
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы