第一步,在composer.json文件写入"maatwebsite/excel":"2.1.23"
第二步,dom(终端切入到laravel5.5项目的composer.json文件目录下
第三步,使用中国镜像https://pkg.phpcomposer.com/ ,
修改当前项目的 composer.json 配置文件:
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户),进入你的项目的根目录(也就是 composer.json 文件所在目录),执行如下命令:
composer config repo.packagist composer https://packagist.phpcomposer.com
第四步,执行命令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 。
代码实例 首先use Excel; //Excel文件导出功能
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');
}
//辅助核算项目导入
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'=>'导入成功'));
}