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 уже не будет рушить данные принимая их за числа. Но это так себе выход.
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 2
@aleksejjjj
Должно так работать. https://laravel-excel.maatwebsite.nl/3.1/exports/c... Вам нужно будет:
/**
 * @return array
 */
public function columnFormats(): array
{
    return [
        // Ваша колонка вместо 'A' 
        'A' => NumberFormat::FORMAT_TEXT,
    ];
}
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
ISS Москва
До 140 000 руб.
ООО РК Роял Набережные Челны
от 35 000 до 50 000 руб.
от 90 000 до 140 000 руб.
17 февр. 2019, в 20:49
2000 руб./за проект
17 февр. 2019, в 20:47
100 руб./за проект