Laravel Excel 官网地址

安装

要求

安装前必须确认以下要求

  • PHP: ^ 7.2|^8.0
  • Composer: ^2.*
  • Laravel: ^5.8
  • PhpSpreadsheet: ^1.15
  • php_zip启用PHP扩展
  • php_xml启用PHP扩展
  • php_gd2启用PHP扩展
  • php_iconv启用PHP扩展
  • php_simplexml启用PHP扩展
  • php_xmlreader启用PHP扩展
  • php_zlib启用PHP扩展

安装

进入项目根目录

cd {project_path}
# 默认安装最新版本
composer require maatwebsite/excel

Maatwebsite\Excel\ExcelServiceProvider是自动发现并默认注册。

如果要自己注册,请在config/app.php以下位置添加ServiceProvider

'providers' => [/** Package Service Providers...*/Maatwebsite\Excel\ExcelServiceProvider::class,
]

Excel facade 也是自动发现。

如果要手动添加,请在中添加外观config/app.php

'aliases' => [...'Excel' => Maatwebsite\Excel\Facades\Excel::class,
]

要发布配置,请运行provider的发布命令:

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

这将创建一个名为的新配置文件config/excel.php

快速导出

创建一个Excel类

可以通过make:export 创建Excel命名空间及对应的Excel处理类.

php artisan make:export EnrollExport--model=Volunteer

执行命令后会创建以下文件

├── app
│   ├── Exports
│   │   ├── EnrollExport.php
│
└── composer.json

生成导出内容

EnrollExport.php 是所有导出文件的处理,数据处理、单元格样式等等
根据下列的情况EnrollExport需要继承不同的接口,如果不继承则对应的设置不会生效

  • Eloquent ORM中导入数据,继承FromCollection
  • 调整列宽,继承WithColumnWidths
  • 调整样式,继承WithStyles
<?phpnamespace App\Exports;use App\Models\ActivityEnrollLog;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithColumnWidths;
use Maatwebsite\Excel\Concerns\WithStyles;
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;class EnrollExport implements FromCollection, WithColumnWidths, WithStyles
{public $data;//需要导出的数据public function __construct($data) {$this->data = $data;}/*** 组合表头和数据* @return \Illuminate\Support\Collection* @author wanghongrui 20210330*/public function collection(){$collect = collect([]);$thead = collect(['志愿者编号','姓名','电话','活动名称','报名时间','取消时间','报名状态']);$collect->push($thead);foreach ($this->data as $d) {$rowData = collect([$d->volunteer->v_number,$d->volunteer->name,$d->volunteer->phone,$d->activity->active_name,$d->enroll_time,$d->cancel_time,$d->status_str,]);$collect->push($rowData);}return $collect;}/*** 设置列宽** @return array* @author wanghongrui 20210330*/public function columnWidths(): array{return ['A' => 15, 'B' => 20, 'C' => 30, 'D' => 50, 'E' => 20, 'F' => 20, 'G' => 10,];}/*** 格式化列* @return array*/
//    public function columnFormats(): array
//    {//        $format = NumberFormat::FORMAT_NUMBER_00;//金额保留两位小数
//        return ['G' => $format, 'H' => $format, 'I' => $format, 'J' => $format, 'K' => $format];
//    }/*** 单元格样式设置** @param Worksheet $sheet* @author wanghongrui 20210330*/public function styles(Worksheet $sheet){$sheet->getDefaultRowDimension()->setRowHeight(22);//设置行高$sheet->getStyle('A1:G'.($this->data->count()+1))->getAlignment()->setVertical('center');//垂直居中$sheet->getStyle('A1:G'.($this->data->count()+1))->applyFromArray(['alignment' => ['horizontal' => 'center']]);//设置水平居中}
}

下载导出文件

生成的导出文件直接通过Excel::download()进行下载

return Excel::download(new EnrollExport($data), '志愿者报名信息表.xlsx');

.

Maatwebsite/excel的简单使用相关推荐

  1. Laravel Excel(maatwebsite/excel )导入

    一:安装 1.要求: 2.安装命令: 使用Composer安装依赖 composer require maatwebsite/excel使用Composer安装依赖 指定版本 composer req ...

  2. laravel 框架maatwebsite/excel拓展导出excel增加sheets分页功能

    laravel的maatwebsite/excel是一个功能很强大的插件,但是文档相对简单了点 怎么引入插件就不写了,composer地址:maatwebsite/excel - Packagist ...

  3. laravel-excel maatwebsite excel 导入的中文文档

    项目里需要导入了,正好 3.1 版本,也支持导入了,补充下 excel 导入的翻译文档.(工作比较忙,大概过了一遍,可能有不少错误的地方)1.5分钟快速入门在 app/Import 创建一个导入类ph ...

  4. laravel 处理excel插件maatwebsite/excel

    2019独角兽企业重金招聘Python工程师标准>>> maatwebsite/excel在github地址: https://github.com/Maatwebsite/Lara ...

  5. 0代码就能做Python数据分析,这个Jupyter插件,用起来就像Excel一样简单

    萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 加载一个Jupyter插件后,无需写代码就能做数据分析,还帮你生成相应代码? 没错,只需要加载这个名为Mito的小工具包,用Python做数 ...

  6. python处理excel-python处理Excel的简单示例

    这篇文章主要为大家详细介绍了python处理Excel的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! Pyt ...

  7. php mysql生成excel文件,PHP导出MySQL数据到Excel文件简单示例

    这篇文章主要为大家详细介绍了PHP导出MySQL数据到Excel文件简单示例,具有一定的参考价值,可以用来参考一下. 对phpPHP导出MySQL数据到Excel文件简单示例感兴趣的小伙伴,下面一起跟 ...

  8. golang利用反射写入excel的简单工具类

    golang利用反射写入excel的简单工具类 工具类源码 使用方法 工具类源码 package excelimport ("errors""github.com/tea ...

  9. Laravel框架使用maatwebsite/excel导出自动换行

    Laravel框架使用maatwebsite/excel导出自动换行 maatwebsite/excel 版本:2.1 $sheet->getStyle("A6:F6")-& ...

最新文章

  1. 支持向量机python代码_用TensorFlow实现多类支持向量机的示例代码
  2. 运维小菜鸟随笔Linux入门级操作命令(更新中。。。)
  3. RNN隐藏层的两种计算方法GRU和LSTM
  4. [转载] JAVA中transient 关键字
  5. python基于paramiko模块实现远程连接Linux虚拟机(服务器)并执行指定命令返回输出结果
  6. php 不返回 数据,php – file_get_contents没有返回任何数据
  7. java生成微信小程序二维码,前台扫描识别
  8. 数据驱动下的客群经营逻辑
  9. My Seventeenth Page - 赎金信 - By Nicolas
  10. Docker 18.09.0更换阿里镜像加速器
  11. 常用笔刷(blender)
  12. 飞机专家调查发现坐飞机 机首、机翼和机尾最安全
  13. 单片机引脚模式的配置
  14. WordPress初学者入门教程-WordPress的设置
  15. AndroidStudio配置LitePal时Failed to Resolve
  16. Dynamic Slicing for Deep Neural Networks
  17. ap计算机基础知识讲解,AP计算机课程与考试解读
  18. 光电测径仪测头工作原理方式
  19. 【小安翻唱】感冒版 心音---Xenos
  20. 标签打印软件输出PDF文件过大时如何解决?

热门文章

  1. 原生 js 九九乘法表
  2. Cura代码编译所需的环境配置
  3. 【STM32】STM32之限位开关
  4. 什么是星空房?它有哪些特色?
  5. VPI step by step(1)
  6. #Git教程:Git简介 @FDDLC
  7. 对于KSWEB使用心得
  8. Editor's comments:
  9. Android DialogFragment实现底部弹出菜单效果
  10. AR(增强现实)技术的运用方式