Ваш вопрос немного расплывчатый, и я мало знаю о PHP, но я поддерживаю аналогичный пакет Python ... поэтому вот попытка помочь:
Excel не различает на уровне записи BIFF числа и даты. Единственный способ, которым читатель XLS может сказать, была ли запланирована дата автором, - это проанализировать «числовой формат», который автор связал (косвенно) с рассматриваемой ячейкой.
Я предполагаю, что вы используете эту функцию Format для установки num_format того, что пакет называет «форматом» (который включает в себя не только «числовой формат», но и выравнивание, фон, границы, ...):
function setNumFormat($num_format)
$ num_format должен быть «числовым форматом» Excel (например, для суммы денег вы можете использовать «$ 0,00»). Для даты вы просто используете тот формат, который вы предпочитаете в стандартных форматах даты, которые предоставляет Excel, или вы можете использовать настраиваемый формат, например «гггг-мм-дд чч: мм: сс» (удобно при отладке).
Тогда вы делаете:
worksheet->write($row, $col, $value, $format)
Где $ формат такой, как описано выше. Для даты $ value должно быть числом дня с плавающей запятой, где 1900-03-01T00: 00: 00 представлено как число дня 61.0, и вам следует избегать более ранних дат, потому что ... [long rant пропущено], и если есть доступна опция «datemode» или «1904», убедитесь, что вы используете (по умолчанию) 0 или False или «no, спасибо».