Maatwebsite/excel的简单使用
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的简单使用相关推荐
- Laravel Excel(maatwebsite/excel )导入
一:安装 1.要求: 2.安装命令: 使用Composer安装依赖 composer require maatwebsite/excel使用Composer安装依赖 指定版本 composer req ...
- laravel 框架maatwebsite/excel拓展导出excel增加sheets分页功能
laravel的maatwebsite/excel是一个功能很强大的插件,但是文档相对简单了点 怎么引入插件就不写了,composer地址:maatwebsite/excel - Packagist ...
- laravel-excel maatwebsite excel 导入的中文文档
项目里需要导入了,正好 3.1 版本,也支持导入了,补充下 excel 导入的翻译文档.(工作比较忙,大概过了一遍,可能有不少错误的地方)1.5分钟快速入门在 app/Import 创建一个导入类ph ...
- laravel 处理excel插件maatwebsite/excel
2019独角兽企业重金招聘Python工程师标准>>> maatwebsite/excel在github地址: https://github.com/Maatwebsite/Lara ...
- 0代码就能做Python数据分析,这个Jupyter插件,用起来就像Excel一样简单
萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 加载一个Jupyter插件后,无需写代码就能做数据分析,还帮你生成相应代码? 没错,只需要加载这个名为Mito的小工具包,用Python做数 ...
- python处理excel-python处理Excel的简单示例
这篇文章主要为大家详细介绍了python处理Excel的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! Pyt ...
- php mysql生成excel文件,PHP导出MySQL数据到Excel文件简单示例
这篇文章主要为大家详细介绍了PHP导出MySQL数据到Excel文件简单示例,具有一定的参考价值,可以用来参考一下. 对phpPHP导出MySQL数据到Excel文件简单示例感兴趣的小伙伴,下面一起跟 ...
- golang利用反射写入excel的简单工具类
golang利用反射写入excel的简单工具类 工具类源码 使用方法 工具类源码 package excelimport ("errors""github.com/tea ...
- Laravel框架使用maatwebsite/excel导出自动换行
Laravel框架使用maatwebsite/excel导出自动换行 maatwebsite/excel 版本:2.1 $sheet->getStyle("A6:F6")-& ...
最新文章
- 支持向量机python代码_用TensorFlow实现多类支持向量机的示例代码
- 运维小菜鸟随笔Linux入门级操作命令(更新中。。。)
- RNN隐藏层的两种计算方法GRU和LSTM
- [转载] JAVA中transient 关键字
- python基于paramiko模块实现远程连接Linux虚拟机(服务器)并执行指定命令返回输出结果
- php 不返回 数据,php – file_get_contents没有返回任何数据
- java生成微信小程序二维码,前台扫描识别
- 数据驱动下的客群经营逻辑
- My Seventeenth Page - 赎金信 - By Nicolas
- Docker 18.09.0更换阿里镜像加速器
- 常用笔刷(blender)
- 飞机专家调查发现坐飞机 机首、机翼和机尾最安全
- 单片机引脚模式的配置
- WordPress初学者入门教程-WordPress的设置
- AndroidStudio配置LitePal时Failed to Resolve
- Dynamic Slicing for Deep Neural Networks
- ap计算机基础知识讲解,AP计算机课程与考试解读
- 光电测径仪测头工作原理方式
- 【小安翻唱】感冒版 心音---Xenos
- 标签打印软件输出PDF文件过大时如何解决?