Lumen 使用 Excel 导入导出功能

1、简介
Laravel Excel 在 Laravel 5 中集成 PHPOffice 套件中的 PHPExcel ,从而方便我们以优雅的、富有表现力的代码实现Excel/CSV文件的导入和 导出 。
但lumen并没有做好这些,工作需要这里借助laravel已有的帖子结合自身梳理关于Lumen Excel使用,这个教程不需要修改vendor临时文件,毕竟vendor每个新项目都是要重新生成的!

该项目的GitHub地址是: https://github.com/Maatwebsite/Laravel-Exc...

2、安装&配置
使用Composer安装依赖
首先在Lumen项目根目录下使用Composer安装依赖:
composer require maatwebsite/excel ~2.1.0
安装完成后
1.复制 vendor/maatwebsite/excel/src/config/下的excel.php文件到lumen根目录config文件夹。
2.在lumen的bootstrap/app.php中加入
(1)$app->register(Maatwebsite\Excel\ExcelServiceProvider::class);
(2)在lumen的app/helpers.php尾部加入
if ( ! function_exists('config_path')) {
/* Get the configuration path. @param string $path @return string /
function config_path($path = '') {
return app()->basePath() . '/config' . ($path ? '/' . $path : $path);
}
}
(3).在lumen的composer.josn加入自动加载
"autoload": {
"psr-4": {
"App\": "app/",
"Api\": "app/Api/"
},
"files": [
"app/helpers.php"
]
},
3、导出Excel文件
为了演示Laravel Excel相关功能,我们为本测试创建一个的控制器ExcelController.php 。
然后在 routes.php 中定义相关路由:
Route::get('excel/export','ExcelController@export');
接下来我们先在 ExcelController.php 中定义 export 方法实现导出功能:
//Excel文件导出功能 By Laravel学院
public function export(){
$cellData = [
['学号','姓名','成绩'],
['10001','AAAAA','99'],
['10002','BBBBB','92'],
['10003','CCCCC','95'],
['10004','DDDDD','89'],
['10005','EEEEE','96'],
];
Excel::create('学生成绩',function($excel) use ($cellData){
$excel->sheet('score', function($sheet) use ($cellData){
$sheet->rows($cellData);
});
})->export('xls');
}
如果还要将该Excel文件保存到服务器上,可以使用 store 方法:
Excel::create('学生成绩',function($excel) use ($cellData){
$excel->sheet('score', function($sheet) use ($cellData){
$sheet->rows($cellData);
});
})->store('xls')->export('xls');
文件默认保存到 storage/exports 目录下,如果出现文件名中文乱码,将上述代码文件名做如下修改即可:
iconv('UTF-8', 'GBK', '学生成绩')

附言 1  ·  7年前

第一次写,根式可以更好些

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5

美男,能排个版不,看得很乱

7年前 评论

@Crny 第一次,不知道怎么排,下次朱益

7年前 评论

教程还没出来自己就刚好动手写了.
http://www.maatwebsite.nl/laravel-excel/do...

7年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!