rishatss
@rishatss
Simple Developer ^)

Как создать Excel файл отталкиваясь от контроллера?

Всем привет!

Сейчас пытаюсь на Laravel 3 создать Excel файл.
И вывести его пользователю.

Использую: Laravel 3 + PHPExcel

Вот такой контроллер у меня:
<?php

use Laravel\Auth;
require_once (dirname(__FILE__).'\PHPExcel.php');

class Excel_Admin_Default_Controller extends Base_Controller {



    public function get_index($format = 'html')
    {
        if(Auth::check()){
            return View::make('excel::index');
        }
        else{
            return Event::first('404');
        }

    }
    public function generate_file()
    {
        //set the desired name of the excel file
        $fileName = 'create-an-excel-file-in-php';

    //prepare the records to be added on the excel file in an array
        $excelData = array(
            0 => array('Jackson','Barbara','27','F','Florida'),
            1 => array('Kimball','Andrew','25','M','Texas'),
            2 => array('Baker','John','28','M','Arkansas'),
            3 => array('Gamble','Edward','29','M','Virginia'),
            4 => array('Anderson','Kimberly','23','F','Tennessee'),
            5 => array('Houston','Franchine','25','F','Idaho'),
            6 => array('Franklin','Howard','24','M','California'),
            7 => array('Chen','Dan','26','M','Washington'),
            8 => array('Daniel','Carolyn','27','F','North Carolina'),
            9 => array('Englert','Grant','25','M','Delaware')
        );

    // Create new PHPExcel object
        $objPHPExcel = new PHPExcel();

    // Set document properties
        $objPHPExcel->getProperties()->setCreator("Me")->setLastModifiedBy("Me")->setTitle("My Excel Sheet")->setSubject("My Excel Sheet")->setDescription("Excel Sheet")->setKeywords("Excel Sheet")->setCategory("Me");

    // Set active sheet index to the first sheet, so Excel opens this as the first sheet
        $objPHPExcel->setActiveSheetIndex(0);

    // Add column headers
        $objPHPExcel->getActiveSheet()
            ->setCellValue('A1', 'Last Name')
            ->setCellValue('B1', 'First Name')
            ->setCellValue('C1', 'Age')
            ->setCellValue('D1', 'Sex')
            ->setCellValue('E1', 'Location')
        ;

    //Put each record in a new cell
        for($i=0; $i<count($excelData); $i++){
            $ii = $i+2;
            $objPHPExcel->getActiveSheet()->setCellValue('A'.$ii, $excelData[$i][0]);
            $objPHPExcel->getActiveSheet()->setCellValue('B'.$ii, $excelData[$i][1]);
            $objPHPExcel->getActiveSheet()->setCellValue('C'.$ii, $excelData[$i][2]);
            $objPHPExcel->getActiveSheet()->setCellValue('D'.$ii, $excelData[$i][3]);
            $objPHPExcel->getActiveSheet()->setCellValue('E'.$ii, $excelData[$i][4]);
        }

    // Set worksheet title
        $objPHPExcel->getActiveSheet()->setTitle($fileName);
    }


}


Теперь вот не соображу как это дело вывести во view.

Помогите пожалуйста :)
  • Вопрос задан
  • 290 просмотров
Решения вопроса 1
@vism
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, Excel5);

        $outputFileName = "file.xls";
        //$objWriter->save($outputFileName);

        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="' . $outputFileName . '"');
        header('Cache-Control: max-age=0');

        $objWriter->save('php://output');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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