Laravel Excel 操作指南:导入导出与配置
"这是关于在 Laravel 框架中使用 maatwebsite/excel 扩展包进行 Excel 文件操作的总结,涵盖了安装、配置、导入和导出等核心知识点。" 在 Laravel 中使用 maatwebsite/excel 扩展包可以方便地处理 Excel 文件的导入与导出,以下是一些关键步骤和功能的详细说明: 1. 安装 - 使用 Composer 安装扩展包:在命令行运行 `composer require "maatwebsite/excel":"~2.1.0"`,这会将 maatwebsite/excel 添加到项目的 composer.json 文件并下载相应的库。 - 在 `app/config/app.php` 文件中注册服务提供者 `Maatwebsite\Excel\ExcelServiceProvider::class`,并添加 Facade 映射,将 'Excel' 绑定到 Laravel 的 IOC 容器。 - 运行 `php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"` 发布配置文件,这将在 `app/config/` 目录下创建一个 `excel.php` 文件,用于自定义配置。 2. 依赖 - maatwebsite/excel 扩展包需要 PHP 版本大于等于 5.3.7,且 Laravel 版本大于等于 4.1。 - 此外,还需要 PHPOffice/PHPExcel 库版本大于等于 1.8.0。 - 对于处理特定类型的 Excel 文件(如 .xlsx、.ods、.gnumeric),需要 php_zip 扩展。 - php_xml 扩展是必需的。 - 如果需要精确的自动计算列宽,php_gd2 扩展也是必要的。 3. 导入 - 基础导入:使用 `Excel::load('file.xls')` 可以加载 Excel 文件,若需执行回调函数来处理数据,可以这样写:`Excel::load('file.xls', function($reader) { ... })`。 - ExcelFile 注入:参考 Laravel 5.0 的 FormRequest 注入,maatwebsite/excel 提供了 ExcelFile 类来处理导入。创建一个继承自 `\Maatwebsite\Excel\Files\ExcelFile` 的类,例如 `UserListImport`,覆盖 `getFile()` 方法返回文件路径,`getFilters()` 方法可启用过滤器,如 'chunk' 过滤器,用于分块处理大文件。 4. 导出 - 导出数据到 Excel 文件可以通过 `Excel::create('Filename', function($excel) { ... })` 实现,其中回调函数内可以添加表格内容。 - 可以设置单元格样式、行列属性等,例如:`$excel->sheet('Sheetname', function($sheet) { ... })`,在回调函数中使用 `$sheet` 对象的方法来定制样式。 5. 单元格设置 - 可以使用 `$sheet->setCellValue('A1', 'Value');` 来设置单元格值。 - 若要设置单元格样式,如字体、颜色、对齐方式等,可以使用 `$sheet->cell('A1', function($cell) { ... });` 并在回调函数中调用 `$cell->setFont()`、`$cell->setAlignment()` 等方法。 6. 行列设置 - 设置行高:`$sheet->setHeight(1, 20);` - 设置列宽:`$sheet->setWidth('A', 20);` - 自动调整列宽:`$sheet->freezeFirstRow();` 和 `$sheet->autofitColumn('A');` 7. 其他功能 - 支持 CSV、XLS、XLSX 等多种文件格式。 - 可以通过过滤器来处理大量数据,如分块读取,避免内存溢出。 - 支持事件监听,可以在数据导入或导出时触发自定义事件。 以上就是使用 maatwebsite/excel 在 Laravel 中进行 Excel 操作的主要知识点,涵盖了基本的安装配置、导入导出、单元格和行列设置,以及一些高级功能。通过这些知识,你可以灵活地处理项目中的 Excel 数据交互需求。
1>composer 安装 "maatwebsite/excel": "~2.1.0"
2>app/config/app.php,添加服务
Maatwebsite\Excel\ExcelServiceProvider::class
设置Facade:
'Excel' => Maatwebsite\Excel\Facades\Excel::class,
这样,就将 'excel' 绑定到了laravel的ioc容器
$excel = App::make('excel');
3>生成配置文件
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
将会在 'app/config/' 添加 'excel.php' 文件
4>依赖
php > 5.3.7
laravel >= 4.1
PHPOffice PHPExcel >= 1.8.0
php_zip(如果需要处理 .xlsx, .ods, .gnumeric 文件,需要此扩展)
php_xml
php_gd2(如果需要精确的自动计算列宽,需要此扩展)
2.导入
1>导入文件
Excel::load('file.xls');
Excel::load('file.xls', function($reader){
})
回调函数可选
2>ExcelFile injections(注入)
应该是参照Laravel5.0的FormRequest注入,Excel提供了ExcelFile注入
1)ExcelFile类
{
public function getFile()
{
return storage_path('exports') . '/file.csv';
}
public function getFilters()
{
return [
'chunk'
];
}
}
getFile() - 返回要导入的excel的文件名及路径。
getFilters() - 可以启用各种 'filter'(过滤器)
getFile()如果想动态获取用户上传的文件,可以参考下方:
public function getFile()
{
// Import a user provided file
$file = Input::file('report'); // 文件上传
$filename = $this->doSomethingLikeUpload($file); // 执行上传,得到上传后路径
// Return it's location
return $filename; // 返回上传后路径
}
2)使用
定义好了ExcelFile注入类,可以注入到 构造方法或其他方法
Class TestController extends Controller()
剩余24页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦