前言:项目中需要实现导出Excel带有省市区三级联动的模板,方便导入数据时动态选择省市区数据。
主要就是实现联动选择,省、市、区三级进行联动,根据前边选择框中选择的条件联动后续的选择框。这里记录下~
效果:
代码实现:
<?php
namespace App\Http\Controllers;
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Cell\DataValidation;
use PhpOffice\PhpSpreadsheet\NamedRange;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Style\Alignment;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
class ExcelController extends Controller
{
/**
* 下载excel模板
* @throws \PhpOffice\PhpSpreadsheet\Exception
* @throws \PhpOffice\PhpSpreadsheet\Writer\Exception
*/
public function exportExcel()
{
//定义一个excel的header表头
$header = ['A1' => '省', 'B1' => '市', 'C1' => '区'];
//需要填充的联动数据(可读取数据表,处理成Tree即可)
$major = [
[
'id' => 1,
'title' => '广东省',
'children' =>
[
[
'id' => 2,
'title' => '广州市',
'children' =>
[
[
'id' => 3,
'title' => '天河区'
],
[
'id' => 4,
'title' => '海珠区'
]
]
],
[
'id' => 5,
'title' => '佛山市',
'children' =>
[
[
'id' => 6,
'title' => '顺德区'
],
[
'id' => 7,
'title' => '南海区'
]
]
]
]
],
[
'id' => 8,
'title' => '湖南省',
'children' =>
[