Laravel Excel(maatwebsite/excel )导入
一:安装
1、要求:
2、安装命令:
使用Composer安装依赖
composer require maatwebsite/excel使用Composer安装依赖 指定版本
composer require maatwebsite/excel=~3.1
3、配置修改:
将 ServiceProvider 添加到config/app.php 中注册服务提供者到 providers 数组:
'providers' => [/** Package Service Providers...*/Maatwebsite\Excel\ExcelServiceProvider::class,
]
在 config/app.php 中 aliases 数组添加 Facade:
'aliases' => [...'Excel' => Maatwebsite\Excel\Facades\Excel::class,
]
如果想要进行更多的自定义配置,执行如下Artisan命令:
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider" --tag=config
执行成功后会在 config 目录下生成一个配置文件 excel.php
到这里,安装就完成了
二:导入
1、创建一个导入类,可以使用make:import
命令来执行此操作。
php artisan make:import ImportTest --model=TestImport
名称、模型自行定义,我使用的是导入 Eloquent 模型ToModel,我的一些代码参考
<?phpnamespace App\Import;use Maatwebsite\Excel\Concerns\ToModel;
use App\Models\TestImport;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\SkipsOnFailure;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Concerns\SkipsFailures;class ImportTest implements ToModel, WithValidation, SkipsOnFailure
{use Importable, SkipsFailures;/*** @author cjg*/public function model(array $row){//判断标题不插入if ($row[0] == '手机号') {return null;}//下面为插入数据库,数据表自行创建,字段自行定义return new TestImport(['phone' => $row[0],'remarks' => $row[1],]);}/*** @author cjg* rules()方法期望返回一个带有 Laravel 验证规则的数组。*/public function rules(): array{return [// Can also use callback validation rules '0' => function($attribute, $value, $onFailure) {if ($value != '手机号') {if (!$value || !preg_match("/^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/", $value)) {$onFailure('手机号错误');}}},'1' => function($attribute, $value, $onFailure) {if ($value != '备注' && !$value) {$onFailure('备注不能为空');}},];}}
xlsx数据截图
2、导入控制器代码
/*** 导入代码* @author cjg*/public function test_import(Request $request){$file = $request->file('file');if(substr(strtolower(PHP_OS), 0, 3) == 'win') {//获取文件临时目录 windows环境$realpath = $file->getRealPath();} else {//获取文件临时目录 linux环境$realpath = storage_path('app') . '/' . $file->store('temp');}// 获取文件名,此方法包括后缀// $filename = $file->getClientOriginalName();// 将缓存在tmp目录下的文件移到某个位置,返回的是这个文件移动过后的路径// $path=$file->move(文件移到哪个文件夹下的路径, 将上传的文件重新命名的文件名);// 获取上传的文件缓存在tmp文件夹下的绝对路径// $realpath=$file->getRealPath();$import = new ImportTest();$import->import($realpath);if ($import->failures()) {//每个失败都是一个实例Maatwebsite\Excel\Validators\Failure。Failure保存有关该单元格的哪一行、哪一列以及验证错误的信息。foreach ($import->failures() as $failure) {// 出问题的那一行$failure->row();//标题键(如果使用标题行)或列索引$failure->attribute();//来自Laravel验证程序的实际错误消息$failure->errors();//失败行的值。$failure->values();}}}
3、路由记得加上,用post方法
导入就这么简单,更多详情可以参考官方文档
官方文档:Introduction | Laravel ExcelSupercharged Excel exports and imports in Laravelhttps://docs.laravel-excel.com/3.1/getting-started/
Laravel Excel(maatwebsite/excel )导入相关推荐
- laravel 框架maatwebsite/excel拓展导出excel增加sheets分页功能
laravel的maatwebsite/excel是一个功能很强大的插件,但是文档相对简单了点 怎么引入插件就不写了,composer地址:maatwebsite/excel - Packagist ...
- laravel中maatwebsite/excel的load不可以用的解决办法
今天项目需要提取excel的内容,composer require maatwebsite/excel: 下边开始代码部分 public function readFile(\Maatwebsite\ ...
- Laravel Excel实现Excel/CSV文件导入导出的功能详解(合并单元格,设置单元格样式)
Laravel Excel实现Excel/CSV文件导入导出(合并单元格,设置单元格样式) 这篇文章主要给大家介绍了关于在Laravel中如何使用Laravel Excel实现Excel/CSV文件导 ...
- php laravel导入excel,Laravel- 后台批量导入 Excel
最近做的一个H5网站 有一个后台批量录入信息列表的功能,上网搜索了一下,发现了maatwebsite/excel 依赖,在此说明一下具体的实现流程. 1.安装 值得一提的是本人使用的是laravel ...
- 【Laravel】使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能
一.安装配置 使用Composer安装依赖: composer require maatwebsite/excel 发布配置(可选): php artisan vendor:publish --pro ...
- laravel5 Excel Excel/CSV 文件导入导出功能
在 Laravel 5 中使用 Laravel Excel 实现 Excel/CSV 文件导入导出功能 Posted on 2015年11月17日 by 学院君 注意版本2.1 1.简介 Lar ...
- Maatwebsite/excel的简单使用
Laravel Excel 官网地址 安装 要求 安装前必须确认以下要求 PHP: ^ 7.2|^8.0 Composer: ^2.* Laravel: ^5.8 PhpSpreadsheet: ^1 ...
- php laravel导入excel,Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
@H_404_0@ 1.简介 @H_404_0@本文主要给大家介绍了关于Laravel 5用Laravel Excel实现Excel/CSV文件导入导出的相关内容,下面话不多说了,来一起看看详细的介绍 ...
- laravel-excel maatwebsite excel 导入的中文文档
项目里需要导入了,正好 3.1 版本,也支持导入了,补充下 excel 导入的翻译文档.(工作比较忙,大概过了一遍,可能有不少错误的地方)1.5分钟快速入门在 app/Import 创建一个导入类ph ...
最新文章
- ueditor1.4.3配置过程(包含单独上传文件以及图片的使用)
- oracle怎么判断主库还是备库,Oracle查看归档是否被备库应用
- 基于redhat linux虚拟服务器的web负载均衡集群(piranha+LVS)
- 【C++】智能指针 Smart Pointer
- Spicy Spring:动态创建自己的BeanDefinition
- 第一次Sprint总结
- iOS学习之NSBundle介绍和使用
- 资料下载丨“十四五”数据库发展趋势与挑战-CCF数据库专委会
- react字符串转html函数,react 字符串强转为html标签
- LeetCode 3 Longest Substring Without Repeating Characters 区间,想法 难度:1
- leetcode python3 简单题225. Implement Stack using Queues
- 点分十进制表示的字符串转换为 unsigned int 整型数值
- 计算机常见软件故障及处理,计算机常见软件故障处理
- C语言(B站比特鹏哥)笔记
- html设计打地鼠游戏,js实现打地鼠小游戏
- 2021年茶艺师(中级)考试试卷及茶艺师(中级)模拟试题
- Hyper-V的使用技巧及管理方法
- win7下ACE+TAO环境搭建
- stm32F4安装包MDK5
- 常德职业技术学院2018级新生军政训练总结表彰大会隆重召开