laravel PHPExcel導出

composer.json中加入php

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

執行命令 web

composer update maatwebsite/excel

執行成功後會在config目錄下生成文件excel.php。json

修改生成的excel.php文件數組

大約是在431行,將'to_ascii' => true,改成服務器

'to_ascii' => false,

在 config/app.php 中註冊服務提供者到 providers 數組:app

Maatwebsite\Excel\ExcelServiceProvider::class,

在 config/app.php 中註冊門面到 aliases 數組:composer

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

若是想要對Laravel Excel進行更多的自定義配置,執行以下Artisan命令:ide

php artisan vendor:publish

執行成功後會在 config 目錄下生成一個配置文件 excel.php 。ui

 而後實現導出、導入功能:spa

<?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"便可,必須用雙引號

相關文章
相關標籤/搜索