來(lái)源:轉(zhuǎn)載 發(fā)布時(shí)間:2018-07-02 15:17:25 閱讀量:803
Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel,從而方便我們以優(yōu)雅的、富有表現(xiàn)力的代碼實(shí)現(xiàn)Excel/CSV文件的導(dǎo)入和導(dǎo)出。
該項(xiàng)目的GitHub地址是:https://github.com/Maatwebsite/Laravel-Excel。
本文我們將在Laravel中使用Laravel Excel簡(jiǎn)單實(shí)現(xiàn)Excel文件的導(dǎo)入和導(dǎo)出。
首先在Laravel項(xiàng)目根目錄下使用Composer安裝依賴:
composer require maatwebsite/excel
要安裝插件為3.0之前的,3.0的話官方還沒(méi)有文檔,按之前操作方式去操作會(huì)報(bào)錯(cuò),切記
如果按照命令運(yùn)行后,發(fā)現(xiàn)安裝版本為3.0后怎么辦
卸載命令
composer remove maatwebsite/excel
然后指定版本安裝
composer require maatwebsite/excel 2.*
表示安裝2.0之后的任何可安裝版本
親測(cè)好使
在config/app.php
中注冊(cè)服務(wù)提供者到providers
數(shù)組:
Maatwebsite\Excel\ExcelServiceProvider::class,
同樣在config/app.php
中注冊(cè)門(mén)面到aliases
數(shù)組:
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
為了演示Laravel Excel相關(guān)功能,我們?yōu)楸緶y(cè)試創(chuàng)建一個(gè)干凈的控制器ExcelController.php
:
php artisan make:controller ExcelController --plain
然后在routes.php
中定義相關(guān)路由:
Route::get('excel/export','ExcelController@export');Route::get('excel/import','ExcelController@import');
接下來(lái)我們先在ExcelController.php
中定義export
方法實(shí)現(xiàn)導(dǎo)出功能:
<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;use App\Http\Requests;use App\Http\Controllers\Controller;use Excel;class ExcelController extends Controller{//Excel文件導(dǎo)出功能 By Laravel學(xué)院public function export(){$cellData = [['學(xué)號(hào)','姓名','成績(jī)'],['10001','AAAAA','99'],['10002','BBBBB','92'],['10003','CCCCC','95'],['10004','DDDDD','89'],['10005','EEEEE','96'],];Excel::create('學(xué)生成績(jī)',function($excel) use ($cellData){$excel->sheet('score', function($sheet) use ($cellData){$sheet->rows($cellData);});})->export('xls');}}
我們?cè)跒g覽器中訪問(wèn)http://www.poem.com/export
,會(huì)導(dǎo)出一個(gè)名為學(xué)生成績(jī).xls
的Excel文件:
如果你要導(dǎo)出csv或者xlsx文件,只需將export
方法中的參數(shù)改成csv或xlsx即可。
如果還要將該Excel文件保存到服務(wù)器上,可以使用store
方法:
Excel::create('學(xué)生成績(jī)',function($excel) use ($cellData){$excel->sheet('score', function($sheet) use ($cellData){$sheet->rows($cellData);});})->store('xls')->export('xls');
文件默認(rèn)保存到storage/exports
目錄下,如果出現(xiàn)文件名中文亂碼,將上述代碼文件名做如下修改即可:
iconv('UTF-8', 'GBK', '學(xué)生成績(jī)')
我們將剛才保存到服務(wù)器上的Excel文件導(dǎo)入進(jìn)來(lái),導(dǎo)入很簡(jiǎn)單,使用Excel
門(mén)面上的load
方法即可:
//Excel文件導(dǎo)入功能 By Laravel學(xué)院public function import(){$filePath = 'storage/exports/'.iconv('UTF-8', 'GBK', '學(xué)生成績(jī)').'.xls';Excel::load($filePath, function($reader) {$data = $reader->all();dd($data);});}
load
方法基于項(xiàng)目根路徑作為根目錄,同樣我們對(duì)中文進(jìn)行了轉(zhuǎn)碼,否則會(huì)提示文件不存在。
在線
客服
服務(wù)時(shí)間:周一至周日 08:30-18:00
選擇下列產(chǎn)品馬上在線溝通:
客服
熱線
7*24小時(shí)客服服務(wù)熱線
關(guān)注
微信
關(guān)注官方微信