Laravel-excel安装及使用

1、 
在根目录下的composer.json下的require中加入"maatwebsite/excel": "2.*" 
如图所示: 

Laravel-excel安装及使用

2、 
使用composer update更新composer 

Laravel-excel安装及使用

这里要耐心等待 

Laravel-excel安装及使用

更新完毕。 
但是查看了一下vendor目录下面没有出现maatwebsite目录,所以表明安装不成功。

Laravel-excel安装及使用

解决办法: 
从第一步开始,先把在根目录下的composer.json下的require中加入"maatwebsite/excel": "2.*"中的2改为1,即:"maatwebsite/excel": "1.*",接着使用composer update,直到出现如图所示的两个更新, 
Laravel-excel安装及使用

vendor下面将会出现maatwebsite目录。接下来,将刚刚修改的根目录下的composer.json中的require中加入"maatwebsite/excel": "1.*"中的1改为原来的2,再运行composer update,会出现如图所示的更新: 

Laravel-excel安装及使用

将低版本的删除更新为最新版本的。

3、 
然后添加'Maatwebsite\Excel\ExcelServiceProvider',到config/app.php中的providers数组中 

Laravel-excel安装及使用

添加'Excel' => 'Maatwebsite\Excel\Facades\Excel',到aliases数组中。 

Laravel-excel安装及使用

4、 
执行命令:php artisan vendor:publish 

Laravel-excel安装及使用

现在已经安装成功了!

Laravel excel的最新版本地址:http://www.maatwebsite.nl/laravel-excel/docs

使用: 
在controller中引用

use Maatwebsite\Excel\Facades\Excel;
    /**
     * 导出excel
     */
    function exportExcel() {                
        $data = array(
                array('data1', 'data2'),
                array('data3', 'data4')
        );

        Excel::create('Filename', function($excel) use($data) {

            $excel->sheet('SheetnameLee', function($sheet) use($data) {
                $sheet->prependRow(1, array(
                    'prepended 001', 'prepended 002'
                ));             

                $sheet->setSize(array(
                        'A1' => array(
                                'width'     => 30,
                                'height'    => 20
                        )
                ));
                for($i=2; $i<10; $i++){
                    $sheet->row($i, array(
                            'test'.$i, 'test'.($i+1)
                    ));
                }//end for()
            });

            $excel->sheet('First sheet', function($sheet) {
                $sheet->row(1, array(
                        'test1', 'test2'
                ));             
            });         
            // Our second sheet
            $excel->sheet('Second sheet', function($sheet) {
                $sheet->fromArray(array(
                        array('data1', 'data2'),
                        array('data3', 'data4')
                ));
            });
        })->export('xls');
    }//end func exportExcel();

注意:在导出excel之前不要有任何的php输出,如echo、print等,不然导出的excel全都是乱码。

英文比较棒的朋友可以参考:http://www.maatwebsite.nl/laravel-excel/docs/getting-started#installation
--------------------- 
以上为转载部分
原文链接:https://blog.csdn.net/leedaning/article/details/46549979 

——————————————————————这是一条可爱的分割线—————————————————————————

 

我的一些变动:

config/app.php中的配置providers、aliases,使用的是如下格式

Laravel-excel安装及使用

php端代码

public function exportExcel(){
        $result = ComBigSubProjectService::getEnroll();
        $data[0] = ["姓名","性别","年龄","电话","地区","项目","状态"];
        foreach ($result as $k=>$v){
            $k ++;
            $data[$k]['name'] = $v['userInfo']['name'];
            $data[$k]['sex'] = $v['userInfo']['sexStr'];
            $data[$k]['age'] = $v['userInfo']['age'];
            $data[$k]['phone'] = $v['userInfo']['phone'];
            if($v['userInfo']['area'] != null){
                $data[$k]['area'] = $v['userInfo']['area']['name'];
            }else{
                $data[$k]['area'] = '暂无';
            }
            if($v['project_info_id'] == 0){
                $data[$k]['project'] = '未提交';
            }else{
                $data[$k]['project'] = '已提交';
            }

            if($v['status'] == 0){
                $data[$k]['status'] = '正常';
            }else{
                $data[$k]['status'] = '已拒绝';
            }

        }
        Excel::create('报名数据',function($excel) use ($data){
            $excel->sheet('报名', function($sheet) use ($data){
                $sheet->rows($data);
            });
        })->export('xls');
    }

 

前端代码(使用get提交):

function exportExcel(){
        location.href="<?php echo e(url("comBigSub/enroll/exportExcel")); ?>";
    }