laravel PHPExcel导出

composer.json中加入

"require": {
        "maatwebsite/excel": "~2.1.0"
    }

执行命令 

composer update maatwebsite/excel

执行成功后会在config目录下生成文件excel.php。

修改生成的excel.php文件

大约是在431行,将'to_ascii' => true,改为

'to_ascii' => false,

在 config/app.php 中注册服务提供者到 providers 数组:

Maatwebsite\Excel\ExcelServiceProvider::class,

在 config/app.php 中注册门面到 aliases 数组:

'Excel' => Maatwebsite\Excel\Facades\Excel::class,

如果想要对Laravel Excel进行更多的自定义配置,执行如下Artisan命令:

php artisan vendor:publish

执行成功后会在 config 目录下生成一个配置文件 excel.php 。

 然后实现导出、导入功能:

<?php
namespace App\Http\Controllers;
use App\Http\Requests;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Excel;
class ExcelController extends Controller
{
    public function export()
    {
        $cellData = [
            ['id','姓名','年龄'],
            ['10001','张三','19'],
            ['10002','李四','22'],
            ['10003','王五','23'],
            ['10004','赵六','19'],
            ['10005','猴七','22'],
        ];
        $name = iconv('UTF-8', 'GBK', '成员信息');
        Excel::create($name,function($excel) use ($cellData){
            $excel->sheet('score', function($sheet) use ($cellData){
                $sheet->rows($cellData);
            });
        })->store('xls')->export('xls');
    }
    public function import(){
        $filePath = 'storage/exports/'.iconv('UTF-8', 'GBK', '成员信息').'.xls';
        Excel::load($filePath, function($reader) {
            $data = $reader->all(); dump($data);
        });
        exit;
    }
}

如果你要导出csv或者xlsx文件,只需将export方法中的参数改成csv或xlsx。

store方法,将该Excel文件保存到服务器上,文件默认保存到storage/exports目录下,iconv()是为了防止文件名中文乱码。

注:解决导出Excel表格中数字自动变成科学记数法,在数字末尾加上"\t"即可,必须用双引号

posted @ 2018-06-21 11:40  暮雨浅忆  阅读(478)  评论(0编辑  收藏  举报