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

第一步,在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'=>'导入成功'));
    
 }

转载于:https://my.oschina.net/u/3766399/blog/1607806

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值