За последние 24 часа нас посетили 19057 программистов и 1638 роботов. Сейчас ищут 885 программистов ...

Пробелма с PHPExcel

Тема в разделе "PHP для новичков", создана пользователем Dron-Boy, 17 ноя 2017.

  1. Dron-Boy

    Dron-Boy Старожил

    С нами с:
    20 ноя 2014
    Сообщения:
    1.041
    Симпатии:
    126
    Вобщем разобрался с либой по уроку http://swblog.ru/articles/programming/sozdaem-otchety-v-excel-na-php.html
    но когда перевел все в ооп все работает но файл кривой создается. Может что то упустил посмотрите код пж.
    PHP:
    1. <?
    2. ini_set('error_reporting', E_ALL);
    3. ini_set('display_errors', 1);
    4. ini_set('display_startup_errors', 1);
    5. // Подключаем класс для работы с excel
    6. require_once('Classes/PHPExcel.php');
    7. // Подключаем класс для вывода данных в формате excel
    8. require_once('Classes/PHPExcel/Writer/Excel2007.php');
    9.     class createShitAndSave{
    10.         private $xls;
    11.         private $sheet;
    12.         private $cou;
    13.         function __construct(){
    14.             $this->cou = 1;
    15.             // Создаем объект класса PHPExcel
    16.             $this->xls = new PHPExcel();
    17.             // Устанавливаем индекс активного листа
    18.             $this->xls->setActiveSheetIndex(0);
    19.             // Получаем активный лист
    20.             $this->sheet = $this->xls ->getActiveSheet();
    21.             // Подписываем лист
    22.             $this->sheet->setTitle('Заказы с сайта');
    23.         }
    24.        public function addTitle($title){
    25.             // Вставляем текст в ячейку A1
    26.             $n = "A".$this->cou;
    27.             $this->sheet->setCellValue($n, $title);
    28.             $this->sheet->getStyle($n)->getFill()->setFillType(
    29.                 PHPExcel_Style_Fill::FILL_SOLID);
    30.             $this->sheet->getStyle($n)->getFill()->getStartColor()->setRGB('EEEEEE');
    31.             // Выравнивание текста
    32.             $this->sheet->getStyle($n)->getAlignment()->setHorizontal(
    33.             PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    34.             $this->cou++;
    35.             $this->addData();
    36.             return $this->getFile();
    37.         }
    38.         private function addData(){
    39.            for ($i = 2; $i < 10; $i++) {
    40.                 for ($j = 2; $j < 10; $j++) {
    41.                     // Выводим таблицу умножения
    42.                     $this->sheet->setCellValueByColumnAndRow(
    43.                                                       $i - 2,
    44.                                                       $j,
    45.                                                       $i . "x" .$j . "=" . ($i*$j));
    46.                     // Применяем выравнивание
    47.                     $this->sheet->getStyleByColumnAndRow($i - 2, $j)->getAlignment()->
    48.                             setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    49.                 }
    50.             }
    51.         }
    52.         private function getFile(){
    53.             // Выводим HTTP-заголовки
    54.              header ( "Expires: Mon, 1 Apr 1974 05:00:00 GMT" );
    55.              header ( "Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT" );
    56.              header ( "Cache-Control: no-cache, must-revalidate" );
    57.              header ( "Pragma: no-cache" );
    58.              header ( "Content-type: application/vnd.ms-excel" );
    59.              header ( "Content-Disposition: attachment; filename=test.xls" );
    60.  
    61.             // Выводим содержимое файла
    62.              $objWriter = new PHPExcel_Writer_Excel5($this->xls);
    63.              $objWriter->save('php://output');
    64.         }
    65. }
    66. $crt = new createShitAndSave();
    67. $crt->addTitle('Тест');
    68. ?>
    в файле куча кракозябр и вот таких варнингов
    <b>Warning</b>: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in <b>/home/cpinua/movies-revies.ru/pars/Classes/PHPExcel/Shared/OLE.php</b> on line <b>472</b><br />
    понимаю что что то с датой а вот как исправить.
    --- Добавлено ---
    Все решил. Полез в файл либы и указал явно временную зону