Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Записать даты в .xlsx через PHPExcel

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Апостроф перед датой при создании документа
dahujika
Отправлено: 27 Февраля, 2016 - 08:08:33
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




День добрый. В заголовке теме вообщем-то все указал.
Разбираюсь в PHPExcel. Код:

CODE (htmlphp):
скопировать код в буфер обмена
  1. $my_date = date('d.m.y', time()+60*20);
  2. $objPHPExcel->getActiveSheet()->getStyle('D2')->getNumberFormat()->setFormatCode('DD.MM.YYYY');
  3. $objPHPExcel->getActiveSheet()->SetCellValue('D1', $my_date);


В документе ячейка принимает нужный формат (DD.MM.YYYY), но записывается дата с апострофом в начале ('), т.е. в итоге вместо 27.02.2016 в ячейке '27.02.2016

Уже прочел, что апостроф в начале - принудительное преобразование к строке, но как избваиться - ума не приложу.
Мозг сломал, 3 часа сидел, что только не пробовал, но так и не понял. Обращаюсь за помощью к более опытным товарищам Хорошо

Сижу на open office, сохраняю в xlsx. Что еще добавить, чтобы записана была дата без апострофа?
 
 Top
Мелкий Супермодератор
Отправлено: 27 Февраля, 2016 - 10:35:43
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




dahujika пишет:
setFormatCode('DD.MM.YYYY')

dahujika пишет:
date('d.m.y'

d.m.Y же. y - это две цифры года.


-----
PostgreSQL DBA
 
 Top
dahujika
Отправлено: 27 Февраля, 2016 - 13:51:45
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Мелкий пишет:
dahujika пишет:
setFormatCode('DD.MM.YYYY')

dahujika пишет:
date('d.m.y'

d.m.Y же. y - это две цифры года.


Да, пусть так. Ща попробовал, результат тот же. Что интересно, такое происходит только если 3 числа и 2 точки (как бы дата). Если ставить число и месяц или месяц с годом, т.е. 2 числа и точка - все ок. Если к строке добавить букву, то тоже не будет апострофа. Если же именно дата такая, то апостроф. Я так и не могу понять даже, где искать решение проблемы то ли в open office и отображении, то ли в php excel.

Пока что спасает поиск .+ и замена на & по всем ячейкам в уже готовом документе, но это не классно - каждый раз заходить и менять руками.
 
 Top
dahujika
Отправлено: 28 Февраля, 2016 - 08:53:33
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Февр. 2016  


Помог: 0 раз(а)




Решения:
PHP:
скопировать код в буфер обмена
  1. $objPHPExcel->getActiveSheet()->SetCellValue('D1', '=NOW()+0.00001*60*20');

и
PHP:
скопировать код в буфер обмена
  1. $objPHPExcel->getActiveSheet()->SetCellValue('D1', PHPExcel_Shared_Date::PHPToExcel(time()+60*20));
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB