您的位置:首页 > 编程语言 > PHP开发

Excel导入导出maatwebsite/excel在laravel5,5项目中的实例

2018-01-16 00:00 477 查看
第一步,在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'=>'导入成功'));

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐