第一步,在composer.json文件寫入"maatwebsite/excel":"2.1.23"php
第二步,dom(終端切入到laravel5.5項目的composer.json文件目錄下laravel
第三步,使用中國鏡像https://pkg.phpcomposer.com/ ,web
修改當前項目的 composer.json 配置文件:
打開命令行窗口(windows用戶)或控制檯(Linux、Mac 用戶),進入你的項目的根目錄(也就是 composer.json 文件所在目錄),執行以下命令:json
composer config repo.packagist composer https://packagist.phpcomposer.comwindows
第四步,執行命令composer install ,而後執行composer update便可數組
第五步,安裝後的設置 在 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 。app
代碼實例 首先use Excel; //Excel文件導出功能composer
public function km_export(){ $res = DB::table('glacct')->get(); //var_dump($res);exit; $cellData[] = ['**','名稱','類別','**','餘額方向','數量']; foreach ($res as $k => $v) { $cellData[] = [$v->FAcctID,$v->FAcctName,$v->FGroup,$v->FClsID,$v->FDC,$v->FUnit]; } //var_dump($cellData);exit; $date=date("YmdHim"); Excel::create($date.'科目列表',function($excel) use ($cellData){ $excel->sheet('score', function($sheet) use ($cellData){ $sheet->rows($cellData); }); })->export('xls'); }
//輔助覈算項目導入dom
public function ass_import(Request $request,$id){ //獲取表名 $cls = DB::table('glcls')->where('fclsid',$id)->first(); $table = $cls->FObjTableName; //var_dump($table);exit; if($request -> hasFile('excel')){ // 獲取文件後綴名 $exe = $request -> file('excel') -> getClientOriginalExtension(); if($exe != 'xls'){ return response()->json(array('code'=>500,'msg'=>'請上傳.xls文件')); } $time = date("YmdHim"); $temp_name = $time.'輔助覈算'; //$name = iconv('UTF-8', 'GBK', $temp_name).'.'.$exe; $name = $temp_name.'.'.$exe; $date = date('Ymd',time()); //Sdd($name); $request -> file('excel') -> move('./files/'.$date,$name); } $filePath = './files/'.$date.'/'.$name; $res = []; Excel::load($filePath, function($reader) use( &$res ) { $reader = $reader->getSheet(0); $res = $reader->toArray(); }); unset($res[0]); //var_dump($res);exit; foreach ($res as $k => $v) { // if($v[0] == 'NULL'|| $v[1] == 'NULL'){ // continue; // } //輔助編碼不能重複(覈算項目表globj,當前輔助覈算表$table) $repeat_obj = DB::table('globj')->where('FObjID',$v[0])->first(); $repeat_obj1 = DB::table("$table")->where('FObjID',$v[0])->first(); if(!empty($repeat_obj) && !empty($repeat_obj1)){ continue; //return Response()->json(array('code'=>0,'msg'=>'編碼已存在,操做失敗'));exit; } if($v[1] == NULL){ break; } $arr = array( 'FClsID'=>$id, 'FObjID'=>$v[0] ); $arr1 = array( 'FClsID'=>$id, 'FObjID'=>'"'.$v[0].'"', 'FObjName'=>'"'.$v[1].'"', 'FDeleted'=> 0, 'FLevel'=>1, 'FDetail'=>1, 'FFullPath'=>$id.'*'.'"'.$v[0].'"' ); //var_dump($arr1);exit; $result = DB::table("$table")->insert($arr); $result2 = DB::table('globj')->insert($arr1); } if(file_exists($filePath)){ unlink($filePath); }else{ echo '該文件不存在'; } return response()->json(array('code'=>200,'msg'=>'導入成功')); }