一:引入类库
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);
});
}