laravel中maatwebsite/excel导入导出

一:引入类库

composer require maatwebsite/excel

二:添加服务【config/app.php】

'providers' => [
	//数组中引入以下类库
	Maatwebsite\Excel\ExcelServiceProvider::class,
],

'aliases' => [
	'Excel'        => Maatwebsite\Excel\Facades\Excel::class,
],

三:控制器引入excel类

use Maatwebsite\Excel\Facades\Excel;

//导出
//$data:导出数组,数组元素按导出列的顺序排列
public function export($data)
{
	//表头
    $header[] = ['A1','B1','C1', 'D1'];
    //组合导出数据
    $exportData = array_merge($header, $list);
    return Excel::create('导出数据', function ($excel) use ($exportData) {
            $excel->sheet('sheet1', function ($sheet) use ($exportData) {
                $sheet->rows($exportData);
                $sheet->setWidth('A',20);//设置单个列宽
                $sheet->setWidth(['A' => 20, 'B' => 10]);//设置多个列宽
                $sheet->setHeight(1, 10);//设置单个行高
                $sheet->setHeight([1 => 10, 2 => 15]);//设置多个行高
                $sheet->mergeCells('A1:A2');//合并单元格
                $sheet->setMergeColumn([
                    'columns' => ['A', 'B', 'C'],
                    'rows'    => [
                        [2, 3],
                        [4, 5],
                    ],
                ]);
                foreach ($exportData as $key => $value)
                {
                	//当前行,B列内容==详情的单元格
                    if ($value['B'] == '详情')
                    {
                    	//设置指定单元格
                        $sheet->cell('B'.$key, function($row) {
                            $row->setBackground('#CCCCCC');//背景色
                            $row->setAlignment('center');//水平居中
                            $row->setValigment('center');//垂直居中
                            $row->setValue('详情');//设置单元格内容
                            $row->setFontColor('#fff');//字体颜色
                            $row->setFontFamily('Calibri');//字体
                            $row->setFontSize(16);//字体大小
                            $row->setFontWeight('bold');//粗体
                            $row->setFont([
                                'family' => 'Calibri',
                                'size'   => 16,
                                'bold'   => true,
                            ]);
                        });
                    }
                }
            })->export('xlsx');
        });
}

//导入文件
public function load()
{
	$filePath = "storage/exports/".iconv("UTF-8", "GBK", "file").".xls";
	Excel::load($filePath);
	//导入,回调,可选
	Excel::load($filePath, function($reader){
   		$data = $reader->all();
   		//$reader = $reader->getSheet(0);
        //$res = $reader->toArray();
        dd($data);
	});
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值