当前位置: 首页 > news >正文

laravel excel导入导出

一、安装第三方

composer require maatwebsite/excel

版本2.1和现在版本 有所不一样

二、导入

<?php
namespace App\Import;
use Maatwebsite\Excel\Concerns\ToCollection;class TestImport implements ToCollection
{public function __construct(){}public function collection(Collection $collection){//处理导入文件的数据,完成内部业务数据逻辑unset($collection[0]);foreach ($collection as $key=>$row){//处理数据}}}
<?php
namespace App\Http\Controller;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Import\TestImport;
use Maatwebsite\Excel\Facades\Excel;class TestController extends Controller
{public function test(Request $request){$path1 = $request->file('file')->store('temp');$path = storage_path('app').'/'.$path1;Excel::import(new TestImport(),$path);}
}

三、导出

<?php
namespace App\Derive;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\Exportable;
use Maatwebsite\Excel\Concerns\WithHeadings;class TestDerive implements FromCollection, WithHeadings
{use Exportable;private $data;private $headings;//数据注入public function __construct($data, $headings){$this->data = $data;$this->headings = $headings;}//实现FromCollection接口public function collection(){return collect($this->data);}//实现WithHeadings接口public function headings(): array{return $this->headings;}
}
<?php
namespace App\Http\Controller;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Import\TestImport;
use Maatwebsite\Excel\Facades\Excel;
use App\Derive\TestDerive;
use Illuminate\Support\Facades\File;class TestController extends Controller
{public function test(){//自定义导出的数据arrErrorInfo = [];//导出的文件表头信息$head = ['uid','reason'];//根据数据生成的excel文件地址 自定义$publicpath = date('Y-m-d',time()).'/test.xls';//如果这个地址前面有日期的区分,需要判断文件夹赋予文件权限if ( !File::isDirectory(date('Y-m-d',time())) )File::makeDirectory(date('Y-m-d',time()), $mode = 0777, true, true);$bRet = Excel::store(new AvatarExcel($arrErrorInfo, $head), $publicpath);//todo 判断生成的文件是否为真,根据业务处理}
}

config配置文件夹中excel.php,配置生成文件的地址

    'local_path'          => public_path().'/error_excel/',
http://www.lryc.cn/news/153588.html

相关文章:

  • Windows无法删除分区怎么办?
  • 【请求报错:javax.net.ssl.SSLHandshakeException: No appropriate protocol】
  • elementUI textarea可自适应文本高度的文本域
  • WebRTC-Streamer交叉编译
  • 将目录下的所有pdf文件都转换为对应名字的png图片
  • windows主机和Ubuntu虚拟机共享设置
  • 北京APP外包开发需要注意的问题
  • 自然语言处理:提取长文本进行文本主要内容(文本意思)概括 (两种方法,但效果都一般)
  • 基于SpringCloudAlibaba实现的NacosConfig
  • 景联文科技:高质量AI数据标注助力大语言模型训练,推动人工智能落地应用
  • 深度学习(前馈神经网络)知识点总结
  • 点云从入门到精通技术详解100篇-点云信息编码(中)
  • 前端刷题-Promise系列
  • 3分钟:腾讯云免费SSL证书申请教程_免费HTTPS证书50张
  • 如何快速成为一名优秀的python工程师?
  • Sqoop(二):Hive导出数据到Oracle
  • HTML数字倒计时效果附源码
  • 以udp协议创建通信服务器
  • 【数据结构】队列篇| 超清晰图解和详解:循环队列模拟、用栈实现队列、用队列实现栈
  • js+html实现打字游戏v2
  • Python之作业(一)
  • uni-app 之 v-on:click点击事件
  • 迁移学习:实现快速训练和泛化的新方法
  • 蓝队追踪者工具TrackAttacker,以及免杀马生成工具
  • ELK日志收集系统(四十九)
  • Linux知识点 -- Linux多线程(四)
  • Java设计模式:四、行为型模式-07:状态模式
  • 很多应用都是nginx+apache+tomcat
  • 原型模式:复制对象的技巧
  • ClickHouse进阶(五):副本与分片-1-副本与分片