Сохраните столбец, чтобы сохранить + в столбце.Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Сохраните столбец, чтобы сохранить + в столбце.

Сообщение Anonymous »

Я использую большой оператор SQL для создания данных для XLSX, включая использование конкатов по крайней мере в одном месте для переформатирования телефонных номеров с удалением пробелов и добавлением +1, как это требуется для этого XLSX.

Код: Выделить всё

SELECT ...
FROM
(SELECT ...
case when p2.national_number is not null then concat('+1', p2.national_number) else p2.national_number end as PhoneNumber)
Эти результаты возвращаются в виде строки, преобразованной из символов Varchars в другом месте базы данных.
Изображение

Это запускается внутри коллекции, где Laravel Excel обрабатывает это отсюда

Код: Выделить всё

return collect($receipts);
Проблема в том, что сгенерированный XLSX сохраняет это значение как число и интерпретирует текстовое поле как число, рассматривая добавление + как положительное число.
Изображение

Это не то, что я хотел. Знак плюс должен присутствовать. Я попытался использовать columnsFormats() со следующими настройками, результаты остались теми же.

Код: Выделить всё

public function columnFormats(): array
{
return [
'G' => NumberFormat::FORMAT_TEXT
];
}
Будем признательны за любые рекомендации по решению этой проблемы.

Подробнее здесь: https://stackoverflow.com/questions/787 ... n-a-column
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»