des1roer
@des1roer
ученье - свет, а неученье - приятный полумрак

Yii выгрузка в excel?

как можно подключить phpexcel и при клике отдавать документ с содержимым из запроса\массива?
вот что пока сделал

----------------
пробую установить вендором phpexcel
d:\open\openserver>cd D:\open\OpenServer\domains\localhost\mining\protected
D:\open\OpenServer\domains\localhost\mining\protected>composer require "yiisoft/yii:@stable"
D:\open\OpenServer\domains\localhost\mining\protected>composer require "phpoffice/phpexcel:@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'
        ),
  • Вопрос задан
  • 1987 просмотров
Решения вопроса 1
des1roer
@des1roer Автор вопроса
ученье - свет, а неученье - приятный полумрак
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sidorenkoda
@sidorenkoda
Программист, верстальщик, руководитель проектов
Недавно подобную задачу решал =)
Решил так:

Установите через composer https://github.com/AlexGx/yii2-phpexcel

Потом
<?php

namespace backend\controllers;

use Yii;
use yii\filters\AccessControl;
use yii\web\Controller;
use yii\filters\VerbFilter;
use backend\models\Price;
use alexgx\phpexcel;

class PriceController extends Controller {
...
public function actionUpdate() {
	    $model = new Price();
	    $h1StyleArray = [
		    'font'  => [
			    'color' => ['rgb' => '691e1e'],
			    'bold' => true,
			    'name' => 'Times New Roman',
			    'size' => 20
		    ],
		    'alignment' => [
			    'horizontal' => 'center'
		    ]
	    ];
	    $cl = new \alexgx\phpexcel\PhpExcel();
	    $xls = $cl->create();
	    $xls->setActiveSheetIndex(0);
	     $sheet = $xls->getActiveSheet();

	    $xls->getActiveSheet()->mergeCells('A1:F1');
	    $sheet->setCellValue('A1', 'Дизайнерский дом ...');
	    $sheet->getStyle('A1')->applyFromArray($h1StyleArray);
            ...
            $cl->responseFile($xls, '222.xlsx', 'Excel2007');
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы