laravel5.5/5.6 excel的安装和使用
http://www.cnblogs.com/djwhome/p/9322112.html
https://laravel-excel.maatwebsite.nl/
在项目开发中 最常用的就是把数据导出成excel的文件报表了
然而新下的项目中啥也没有;没有excel的扩展
会报这个错误
然后你需要通过composer安装这个依赖
1,使用Composer安装依赖
在Laravel项目根目录下使用Composer安装依赖:
composer require maatwebsite/excel ~2.1
ps:一定要加上~2.1!!!因为现在已经更新到3.0版本了,如果你不加的话,会安装最新的3.0版本!等运行时候就会报错,类似下面这样的报错
Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)Call to undefined method Maatwebsite\Excel\Excel::create(),
2,安装后,修改设置
在config/app.php中注册服务提供者到providers数组:
Maatwebsite\Excel\ExcelServiceProvider::class,
在config/app.php中注册门面到aliases数组:
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
执行Artisan命令:
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
执行成功后会在config目录下生成文件excel.php。
修改生成的excel.php文件
大约是在431行,将'to_ascii' => true,改为
'to_ascii' => false,
3、测试Excel文件
创建一个控制器ExcelController.php:
php artisan make:controller ExcelController
然后在routes.php中定义相关路由:
Route::get('excel/export','ExcelController@export');
Route::get('excel/import','ExcelController@import');
然后实现导出、导入功能:
store方法,将该Excel文件保存到服务器上,文件默认保存到storage/exports目录下,iconv()是为了防止文件名中文乱码。
访问 http://youdemain/excel/export
访问 http://youdemain/excel/import
复制代码
public function extract(Request $request)
{
// 请求参数
$status = $request->status ? $request->status : 4; // status(提取状态) 4 有效-未提取 6 已提取 未提取指的是标记为有效的
$data_id = $request->data_id ? $request->data_id : [];
$all_extract = $request->all_extract ? $request->all_extract : 1; // 默认是普通选择提取
$extract_data = $this->getExtData(4, $data_id, 2);
// return Response::json($extract_data);
// dd($extract_data);
$cellData[
Excel::create("{$status_msg}数据",function($excel) use ($cellData){
$excel->sheet('score', function($sheet) use ($cellData){
$sheet->rows($cellData);
});
})->export('xls');
}