Отформатируйте ячейки для всего столбца в PHP Excel

Я использовал решение, найденное в этом ответе.

Код, который я использовал, выглядит так:

  $objWorksheet->getColumnDimension("AM")->setWidth(20);
  $objWorksheet->SetCellValue("AM1", "Date1");
  $objWorksheet->getStyle("AM")
                 ->getNumberFormat()
                   ->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);

Единственная проблема, с которой я столкнулся, - это когда я выбираю весь столбец как таковой:

введите здесь описание изображения

Там по-прежнему написано «общее».

Но когда я выбираю диапазон столбцов от 0 до 4500, я говорю:

введите здесь описание изображения

Он отображается как «текст».

Если установлено значение «Общие», даты автоматически формируются в Excel и неправильно читаются в PHPExcel.

Будут ли эти ячейки считаться «Общие» или «Текстовые»?

Могу ли я быть уверен, что при использовании этого метода они всегда будут читаться как «Текст»?


person Kellen Stuart    schedule 05.03.2016    source источник
comment
Почему вы не храните даты должным образом в виде сериализованной временной метки MS EXcel и не используете допустимую маску формата даты / времени?   -  person Mark Baker    schedule 05.03.2016
comment
@MarkBaker, что ты имеешь в виду? Под кастомом - yyyy-mm-dd hh-mm-ss? Я попробовал это, и даты пришли совершенно неверно.   -  person Kellen Stuart    schedule 05.03.2016
comment
Как вы на самом деле устанавливаете значения даты в этих ячейках? Это форматированная строка или сериализованное значение даты и времени в MS Excel? Если вы используете TEXT или GENERAL, это предполагает, что вы храните строковые значения.   -  person Mark Baker    schedule 05.03.2016
comment
@MarkBaker Этот лист создан с помощью Php Excel. Данные поступают из запроса MySqli, который возвращает массив строк. Таким образом, входящие значения - это строковые значения, помещенные в таблицу Excel.   -  person Kellen Stuart    schedule 05.03.2016
comment
Затем вам, вероятно, следует преобразовать их в допустимые метки времени MS Excel с помощью PHPExcel_Shared_Date :: stringToExcel () и применить соответствующую маску формата к ячейкам, чтобы отображать их как даты (например, 'yyyy-mm-dd hh:mm:ss'   -  person Mark Baker    schedule 05.03.2016
comment
@MarkBaker Интересно. yyyy-mm-dd hh:mm:ss под кастомом в формате ячейки?   -  person Kellen Stuart    schedule 05.03.2016
comment
Вы можете сами определять маски формата, вы не ограничены теми стандартными значениями, которые определены в MS Excel (или в PHPExcel) - support.office.com/en-us/article/ - и обычно они появятся в разделе "Пользовательский"   -  person Mark Baker    schedule 05.03.2016
comment
@MarkBaker Попался. Спасибо! Узнал что-то новое.   -  person Kellen Stuart    schedule 05.03.2016