使用laravel-excel导入数据

第一步 安装laravel-excel

我这边用的是laravel5.8版本 所以安装laravel-excel版本是3.1以上的

composer require maatwebsite/excel

敲下命令后会直接拉取最新版

看到successful 就说明已经安装成功了

接下来创建后台导入按钮

php artisan admin:action Member/ImportAction --name="导入"

命令执行完之后会在 app/Admin/Actions/Member/ 文件夹下生成一个 ImportAction.php 文件

然后在member控制器下添加代码如下

 protected function grid(){$grid = new Grid(new MemberModel());$grid->column('id', __('Id'));$grid->column('username', '用户名');$grid->column('sex', '性别')->using([1 => '男',2 => '女']);$grid->column('phone', '手机号码');$grid->column('created_at', __('Created at'));// 添加到列表上$grid->tools(function (Grid\Tools $tools) {$tools->append(new ImportAction());});return $grid;}

接着创建导入类

php artisan make:import Member/ImportMember --model=App\Models\MemberModel

命令执行完之后会在 app/Imports/Member 文件夹下生成 ImportMember.php 文件

然后编辑代码

<?phpnamespace App\Imports\Member;use App\Models\MemberModel;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithStartRow;class ImportMember implements ToModel,WithStartRow
{/*** @param array $row** @return \Illuminate\Database\Eloquent\Model|null*/public function model(array $row){// 0代表的是第一列 以此类推// $row 是每一行的数据return new MemberModel(['username' => $row[0],'sex' => $row[1],'phone' => $row[2]]);}/*** 从第几行开始处理数据 就是不处理标题* @return int*/public function startRow(): int{return 2;}
}

接着编辑 ImportAction.php 文件

<?phpnamespace App\Admin\Actions\Member;use App\Imports\Member\ImportMember;
use Encore\Admin\Actions\Action;
use Encore\Admin\Admin;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;class ImportAction extends Action
{protected $selector = '.import-action';public function handle(Request $request){try{// $request ...$file = $request-> file('file');Excel::import(new ImportMember(),$file);return $this->response()->success('数据导入成功')->refresh();}catch (\Exception $e){return $this->response()->error($e -> getMessage());}}/*** 按钮名称* @return string*/public function html(){return <<<HTML<a class="btn btn-sm btn-default import-action">导入</a>
HTML;}/*** 表单*/public function form(){$this->file('file', '请选择文件')->options(['showPreview' => false,'allowedFileExtensions'=>['xlsx','xls'],'showUpload'=>true]);}/*** 上传等待* @return string*/public function handleActionPromise(){$resolve = <<<SCRIPT
var actionResolverss = function (data) {$('.modal-footer').show()$('.tips').remove()var response = data[0];var target   = data[1];if (typeof response !== 'object') {return $.admin.swal({type: 'error', title: 'Oops!'});}var then = function (then) {if (then.action == 'refresh') {$.admin.reload();}if (then.action == 'download') {window.open(then.value, '_blank');}if (then.action == 'redirect') {$.admin.redirect(then.value);}};if (typeof response.html === 'string') {target.html(response.html);}if (typeof response.swal === 'object') {$.admin.swal(response.swal);}if (typeof response.toastr === 'object') {$.admin.toastr[response.toastr.type](response.toastr.content, '', response.toastr.options);}if (response.then) {then(response.then);}};var actionCatcherss = function (request) {$('.modal-footer').show()$('.tips').remove()if (request && typeof request.responseJSON === 'object') {$.admin.toastr.error(request.responseJSON.message, '', {positionClass:"toast-bottom-center", timeOut: 10000}).css("width","500px")}};
SCRIPT;Admin::script($resolve);return <<<SCRIPT$('.modal-footer').hide()let html = `<div class='tips' style='color: red;font-size: 18px;'>导入时间取决于数据量,请耐心等待结果不要关闭窗口!<img src="https://img-blog.csdnimg.cn/2022010707365834764.gif"><\/div>`$('.modal-header').append(html)
process.then(actionResolverss).catch(actionCatcherss);
SCRIPT;}}

导入excel格式

导入后

– 完

laravel-admin使用laravel-excel导入数据相关推荐

  1. R语言 从excel导入数据,由于内容有excel的换行符导致列数不一致的问题

    R语言 从excel导入数据,由于内容有excel的换行符导致列数不一致的问题 问题描述 解决办法 1. 在excel中先通过trim和clean函数进行预处理 2. 读入数据 简单的方法是,将清理后 ...

  2. 使用Echarts制作散点图(Excel导入数据方式)

    2019独角兽企业重金招聘Python工程师标准>>> Echarts相当于一款JS插件,可以制作出绚丽多彩的图表,其支持制作的图表类型和可以使用的样式都非常丰富.本文以Echart ...

  3. Excel导入数据(图片处理)

    在用excel导入数据的时候,如果一条数据,包含图片,甚至每条数据图片数量不固定. 图片放到excel里面直接拖进去就可以,再鼠标拉缩小到指定单元格内 package com.ydcloud.smar ...

  4. 灰色模型代码GM(1,1),从excel导入数据,亦可导出数据到excel中。

    灰色模型代码GM(1,1),从excel导入数据,亦可导出数据到excel中. 总结1:直接输出结果 %clc W= MicrosoftExcel;(从EXCEL导入数据后,matlab自动储存的数组 ...

  5. Excel导入数据轻松生成智能图表,助力数据分析

    运营助手,Excel导入数据轻松生成智能图表,助力数据分析 2023-04-18 10:21·淡定海风L 智能问答BI是一种先进的数据分析,它可以帮助用户快速地从海量数据中获取有用的信息,并将其可视化 ...

  6. Excel导入数据时间格式问题处理

    问题背景:java中使用poi进行excel导入数据时,日期格式在数据库中存放为varchar2类型.问题:存放数据日期读取数据为"44439"的数字,因判断格式类型为yyyy-m ...

  7. sqlserver excel导入数据时有null,为空值

    sqlserver excel导入数据时有null,最完美解决办法 1.说明为什么会出现导入的数据会为null? 因为在数据库导入数据时,他会自动检测数据的类型,文字一般检测为nvarchar类型,而 ...

  8. excel导入数据校验_从Excel数据验证列表中选择多个项目

    excel导入数据校验 You've probably used an Excel data validation drop down list, where you can click the ar ...

  9. excel导入数据校验_Excel数据验证更新

    excel导入数据校验 I've finally updated my Data Validation intro video, so it shows the steps for creating ...

  10. excel导入数据校验_使用Excel数据验证限制日期范围

    excel导入数据校验 Yesterday, one of my clients emailed to let me know that she was having trouble entering ...

最新文章

  1. 《敏捷迭代开发:管理者指南》—第2章2.5节渐进开发和自适应开发
  2. 四.Android adb命令(持续更新...)
  3. 【控制】《复杂运动体系统的分布式协同控制与优化》-方浩老师-第7章-带有操作度及能量优化的分布式协同搬运控制
  4. 机器学习中的范数规则化之(二)核范数与规则项参数选择
  5. 解决Red hat 5.4的中文问题
  6. 0419 一些不错的UI作品,以后陆续更新
  7. 赞!史上最强音视频下载神器youtube-dl回归,GitHub75k星
  8. 冒着得罪大佬的风险,曝光下这件事
  9. Lync 2013持久聊天迁移至Skype for Business
  10. 编译原理(第3版)第1章引论课后题答案
  11. 使用apktool+dex2jar+xjad进行反编译
  12. Axure制作音乐App原型图
  13. 前端vue后台管理系统项目优化
  14. 中医大2020年7月网考计算机应用基础,2020年7月网络教育统考《计算机应用基础》操作系统应用模拟题试卷2...
  15. mysql 重启监听器_Oracle Lsnrctl监听器的启动和关闭
  16. 在谷歌地图上显示您的位置
  17. Golang 本地缓存选型对比及原理总结
  18. error LNK2001: 无法解析的外部符号 __imp__WSAGetLastError@0
  19. 解决cd: string not in pwd的问题
  20. oracle 截取小数点_数据库截取小数点后两位小数

热门文章

  1. 新知:打喷嚏是鼻子在“系统重启”
  2. 龙珠计划-机器学习-day03-基于LightGBM的分类预测
  3. A borderRadius can only be given for uniform borders.
  4. 有关需求和用例的资源
  5. html本地存储方式实现的五线谱在线识谱练习应用
  6. 与狼共舞——观《狼》有感
  7. 亚马逊云科技基于智能搜索,为企业打造知识库
  8. MTCNN理解到亲手训练
  9. c++builder按钮设计特效三例
  10. winform自定义控件(gdi+)(7)——Matrix类的用法