如何在 Laravel 项目中处理 Excel 文件 | 扣钉·实栗

Posted 扣钉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在 Laravel 项目中处理 Excel 文件 | 扣钉·实栗相关的知识,希望对你有一定的参考价值。

"扣钉Coding,用程序猿的眼光看生活"




     // 说明 //     


maatwebsite/excel 是一款强大的 Excel 文件处理扩展包,能够快速完成 Excel 文件的的导出,解析等功能。

     // 截图 //     


如何在 Laravel 项目中处理 Excel 文件 | 扣钉·实栗



     // 运行 //     


Demo 代码请见:

https://github.com/zhengjinghua/est-excel-demo

请参照此文档运行 Demo:

https://phphub.org/topics/1902



     // 文章概览 //     


  1. 安装;

  2. 基础用法;

  3. 更多功能。

接下来是详细解说。



     // 安装 //     


1). 使用 Composer 安装该扩展包:

composer require maatwebsite/excel



2). 安装完成后,修改 config/app.php 在 providers 数组内追加如下内容

'providers' => [

    ...

    Maatwebsite\Excel\ExcelServiceProvider::class,

],



3). 同时在 aliases 数组内追加如下内容:

'aliases' => [

    ...

    'Excel' => Maatwebsite\Excel\Facades\Excel::class,

]



4). 接下来运行以下命令生成此扩展包的配置文件 config/excel.php:

php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"



默认配置基本能通用大部分的项目开发需求,因此本文不对此配置文件做过多叙述,想深入研究的童鞋可以阅读官方文档。


到此, 此拓展包即安装成功。



基础用法:


     // 解析 Excel 文件 //     


$excel_data = Excel::load($excel_file_path, function($reader) {

    $excel_data = Excel::load($excel_file_path)->get()->toArray();


    // 直接打印内容即可看到效果

    echo 'job.xlsx 表格内容为:';

    dd($excel_data);

});



     // 将数据导成 Excel 文件 //     


// 导出 Excel 并能直接在浏览器下载

# $export_file_name = 要生成的文件名

Excel::create($export_file_name, function ($excel) {

    $excel->sheet('Sheetname', function ($sheet) {

        $sheet->appendRow(['data 1', 'data 2']);

        $sheet->appendRow(['data 3', 'data 4']);

        $sheet->appendRow(['data 5', 'data 6']);

    });

})->download('xls');


// 导出 Excel 并存储到指定目录

Excel::create($export_file_name, function ($excel) {

    $excel->sheet('Sheetname', function ($sheet) {

        $sheet->appendRow(['data 1', 'data 2']);

        $sheet->appendRow(['data 3', 'data 4']);

        $sheet->appendRow(['data 5', 'data 6']);

    });

})->store('xls', $object_path);


导出的 Excel 内容见下图:




     // 更多功能 //     


除了上述的解析/导出功能外,此扩展包还支持:


  1. 解析指定表格里的指定列;

  2. 格式化日期;

  3. 添加计算公式;

  4. 缓存表格;

  5. 批量解析指定目录里的所有 Excel 文件;

  6. 可以做格式转换, 如将 csv 转换成 xls, 反之亦可;

  7. 可以将 Excel 结合 blade 模板引擎进行渲染。


这些更多的用例请移步官方文档参考。



以上,就是今天的实栗分享:如何在 Laravel 项目中处理 Excel 文件。欢迎同我们交流学习,一起进步。


父亲节快乐 : )



- the end -

责任编辑/Wenda



往期实栗文章:


【】

【】



“关注扣钉Coding,用程序猿的眼光看生活”


以上是关于如何在 Laravel 项目中处理 Excel 文件 | 扣钉·实栗的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:如何将 Excel 文件存储在给定的路径中?

纯文本文档如何转换成excel工作表

如何在 Laravel Excel 中格式化日期?

在Laravel中导入Excel文件,数据量太大,服务器经常500怎么办

laravel的excel导出

python如何对excel数据进行处理