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

Yii как подружить с phpexcel

Тема в разделе "Прочие вопросы по PHP", создана пользователем des1roer, 2 сен 2015.

  1. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    как можно подключить phpexcel и при клике отдавать документ с содержимым из запроса\массива?
    вот что пока сделал

    пробую установить вендором phpexcel

    d:\open\openserver>cd D:\open\OpenServer\domains\localhost\mining\protected

    D:\open\OpenServer\domains\localhost\mining\protected>composer require "yiisoft/yii:mad:stable"

    D:\open\OpenServer\domains\localhost\mining\protected>composer require "phpoffice/phpexcel:mad:stable"

    D:\open\OpenServer\domains\localhost\mining\protected>composer require laxu/yii-phpexcel

    отсюда https://github.com/laxu/yii-phpexcel

    но при $model->writeExcelFile(); //\analiz\views\element\admin.php

    public function writeExcelFile() //\analiz\models\Element.php
    {
    $manager = Yii::app()->getComponent('yii-phpexcel');
    //Create empty instance
    $excel = $manager->create();

    //Add a header row with a grey background
    $headerStyle = array(
    'fill' => array(
    'type' => \PHPExcel_Style_Fill::FILL_SOLID,
    'color' => array('rgb' => 'CCCCCC')
    )
    );
    $excel->addHeaderRow(
    array(
    'header1',
    'header2',
    'header3'
    ),
    $headerStyle
    );

    //Add a few rows of data to the document
    //Note that addData doesn't care about the actual keys in the data, only the order of values
    $data = array(
    array(
    'data1',
    'data2',
    'data3',
    ),
    array(
    'id' => 1,
    'name' => 'Example',
    'moreData' => 'Something'
    )
    );

    $excel->addData($data);
    $excel->save();

    }

    получаю

    CException
    Неправильный алиас "laxu.yii_phpexcel". Убедитесь, что он указывает на существующую директорию или файл.

    \protected\config\main.php

    // application components
    'components' => array(
    'yii-phpexcel' => array(
    'class' => '\laxu\yii_phpexcel\ExcelManager',
    'savePath' => 'app.files.excel'
    ),

    как понимаю нужно хитро autoloader настроить, не пойму как
     
  2. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    Устанавливали comoser-ом или сами? Все конфиги настроили? Я с yii1 правда не работал почти, не знаю, как там автозагрузчик сделан.
     
  3. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    через композер.
    Код (Text):
    1. d:\open\openserver>cd D:\open\OpenServer\domains\localhost\mining\protected
    2.  
    3. D:\open\OpenServer\domains\localhost\mining\protected>composer require "yiisoft/yii:@stable"
    4.  
    5. D:\open\OpenServer\domains\localhost\mining\protected>composer require "phpoffice/phpexcel:@stable"
    6.  
    7. D:\open\OpenServer\domains\localhost\mining\protected>composer require laxu/yii-phpexcel
    только толку мало.

    Код (Text):
    1.         public function actionExcel()
    2.         {
    3.     // unregister Yii's autoloader
    4.             spl_autoload_unregister(array('YiiBase', 'autoload'));
    5.     // register PHPExcel's autoloader ... PHPExcel.php will do it
    6.             $phpExcelPath = Yii::getPathOfAlias('ext.phpexcel');
    7.             include($phpExcelPath . DIRECTORY_SEPARATOR . 'PHPExcel.php');
    8.     // register Yii's autoloader again
    9.             spl_autoload_register(array('YiiBase', 'autoload'));
    10.      
    11.     // This requires Yii's autoloader
    12.             $models = SomeModel::model()->findAll();
    13.      
    14.     // This requires PHPExcel's autoloader
    15.             $objReader = PHPExcel_IOFactory::createReader('Excel5');
    16.         }

    получаю

    Fatal error: Class 'CExceptionEvent' not found in D:\open\OpenServer\domains\localhost\yii\framework\base\CApplication.php on line 734

    Fatal error: Class 'CException' not found in D:\open\OpenServer\domains\localhost\yii\framework\web\CThemeManager.php on line 110

    такое ощущение что он обратно его подключить не может