在Laravel5中使用 LaravelExcel 实现Excel - CSV文件导入导出功能( PHPExcel )

发布时间:2018-05-06 编辑:小张个人博客 查看次数:18545

Laravel Excel在Laravel5中集成PHPOffice套件中的 PHPExcel,从而方便我们以优雅的、富有表现力的代码实现Excel/CSV文件的导入和导出。该项目的GitHub地址是:https://github.com/Maatwebsite/Laravel-Excel。

使用Composer安装依赖

composer require maatwebsite/excel ~2.0.0

安装后的设置(config/app.php)

//注册服务提供者到providers数组
Maatwebsite\Excel\ExcelServiceProvider::class,

//注册门面到aliases数组:
'Excel' => Maatwebsite\Excel\Facades\Excel::class,

如果想要对Laravel Excel进行更多的自定义配置,执行如下Artisan命令:

php artisan vendor:publish  //执行成功后会在config目录下生成一个配置文件excel.php。

LaravelExcel导出Excel文件(演示)

定义相关路由(routes.php)

Route::get('LaravelExcel','Home\[email protected]');

在LaravelExcelController.php中定义LaravelExcel方法实现导出功能

// 从一个数组生成Excel表
Excel::create('商品表',function($excel){
$excel->sheet('sheet',function($sheet){
   // 另外还可以用:$sheet -> with()或者$sheet -> fromArray()
    $sheet ->rows(array(
        array('商品名','价格','库存','备注'),
        array('小米5','1999','23','023'),
        array('360N5','1399','99','32'),
        array('红米Note','999','112'),
        array('360N4','999','120')
    ));
});
})->export('xls');

然后在浏览器中访问http://www.023xs.cn/LaravelExcel,会导出一个名为商品表.xls的Excel文件:

LaravelExcel

LaravelExcel设置表格样式(行)

LaravelExcel空比较

默认0显示为空单元格,如果要改变,传递true到第4个参数:

$sheet->fromArray($data, null, 'A1', true);

LaravelExcel空比较

设置表格样式

// 设置表格样式
 $sheet -> row(1,function($row){
	// 单元格处理方法
	$row ->setBackground('#ff3300'); // 设置单元格背景
	$row ->setFontColor('#ffffff'); // 改变字体颜色
	// 分开设置字体
	/*$row ->setFontSize(18);  // 改变字体大小
	$row ->setFontFamily('Calibri'); // 设置字体
	$row -> setFontWeight('bold'); // 字体设置为粗体*/
	//要改变当前表的字体用:->setFont($array)
	$row ->setFont([
		'family' => 'Calibri',
		'size' => '18',
		'bold' => true
	]);
	// 设置边框
	// $row -> setBorder('solid','none','none','solid');
	//设置水平对齐
	$row ->setAlignment('center');
	//设置垂直对齐
	$row ->setValignment('middle');
 });	
});
// 设置行高
// $sheet->setHeight(1, 110);
// 为多个行设置高度
$sheet->setHeight(array(
	1     =>  50,
	2     =>  25
));
// 设置所有边框
$sheet->setAllBorders('thin');
// 设置单元格尺寸
$sheet->setSize('A1', 10, 10);

插入行

// 在第1行后插入
$sheet->appendRow(1, array(
    '0','1','2','3'
));
// 插入最后
$sheet->appendRow(array(
    '商品名','价格','库存','备注'
));

LaravelExcel设置表格样式(行)

添加一行

// 添加到第1行前
$sheet->prependRow(1, array(
    '商品名','价格','库存','备注'
));
// 添加到最前面
$sheet->prependRow(array(
    '商品名','价格','库存','备注'
));

1.jpg


我这里只是介绍了laravel-excel常用功能和基本设置,希望对大家有所帮助!当然,Laravel Excel还有很多其它功能,具体可参考其官方文档:http://www.maatwebsite.nl/laravel-excel/docs


出处:小张个人博客

网址:http://blog.023xs.cn/

您的支持是对博主最大的鼓励,感谢您的认真阅读。欢迎转载,但请保留该声明。

顶部

Copyright © 小张个人博客 All Rights Reserved 渝ICP备15006773号-1

联系方式:[email protected] | 本站文章仅供学习和参考

渝公网安备 50024102500267号