Laravel :如何将Excel文件导入数据库

文章目录

    • 一、前提
    • 二、使用
      • 2.1、新建一个导入文件
      • 2.2、新建一个控制器和方法,调用导入文件
      • 2.3、 新建一个页面,支持文件上传

一、前提

想要将excel内容入库,laravel有扩展可以使用,常用的扩展是maatwebsite/excel,安装步骤参考上一篇:laravel中安装Maatwebsite/excel扩展

二、使用

2.1、新建一个导入文件

php artisan make:import 文件名称 --model=Model地址

在这里插入图片描述

然后在里边编写你的导入逻辑

<?phpnamespace App\Imports;use App\Exceptions\ApiException;
use Illuminate\Support\Facades\DB;
use Maatwebsite\Excel\Concerns\ToArray;
use Maatwebsite\Excel\Concerns\WithChunkReading;
use Maatwebsite\Excel\Concerns\WithHeadingRow;class QuesExport implements ToArray, WithChunkReading, WithHeadingRow
{public function array(array $rows){$data = [];$now = date('Y-m-d H:i:s');foreach ($rows as $row) {$data[] = ['id' => $row['id'],'number' => 0,'parent_id' => 0,'type' => 1,'question' => $row['ques'],'standard_answer' => $row['answer'],'ai_ques_id' => $row['aiid'],'created_at' => $now];}if (!$data) {throw new ApiException('没有要导入的数据');return false;};//全部导入DB::select('TRUNCATE table questions_copy1');DB::table('questions_copy1')->insert($data);return true;}public function chunkSize(): int{return 500;}public function headingRow(): int{return 1;}/*** @param Failure[] $failures*/public function onFailure(Failure ...$failures){// Handle the failures how you'd like.throw new ApiException('fhwaeurewsdf');}
}

2.2、新建一个控制器和方法,调用导入文件

    /*** 导入excel,入库** */public function uploadQues(Request $request){$file = $request->file('file');// 保存上传文件$path = public_path('uploads/admin/ques');$this->mkdirs($path); // 已存在的路径不会再创建$fileName = date('YmdHis') . '_' . uniqid() . '_' . '.' . strtolower($file->getClientOriginalExtension());$file->move($path, $fileName);// 读取文件并入库Excel::import(new QuesExport(), $path . '/' . $fileName);// 删除上传文件unlink($path . '/' . $fileName);return response()->json(['status'=>1,'msg'=>'',]);}

2.3、 新建一个页面,支持文件上传

我这里简单写了个页面,如下:

<!DOCTYPE html>
<html >
<head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Laravel</title><script  src="/js/jquery-3.3.1.min.js?v=2021123999" type="text/javascript" charset="utf-8"></script><meta name="csrf-token" content="{{ csrf_token() }}">
</head>
<body>
<div class="flex-center position-ref full-height"><div class="upload_box"><input type="file" name="file" accept="file" id="auth-upload"  onchange="uploadFile();"/><div class="reload_file flex-v flex-vc flex-hc"><i class="icon icon_add"></i><p>文件</p></div></div>
</div><script>function uploadFile(){file = $("#auth-upload")[0].files[0];// alert(file);// alert(file.name);// return;file_name = file.name;ext = file_name.slice(file_name.lastIndexOf(".")+1).toLowerCase();imgMaxSize = 1024*1024*10;if (ext != 'xlsx' ) {swal('文件格式不正确');return ;}// if (file.size > imgMaxSize) {swal('文件大小超过10M'); return ;}formData = new FormData();// 自定义formData中的内容formData.append('file', file);formData.append('_token', '{{csrf_token()}}');$.ajax({type: 'POST',url: "/upload",data: formData,cache: false,processData: false,contentType: false,dataType:'json',success: function (data) {if (data.status){alert('成功');}else{alert('失败');}}});}</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/44226.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mosh|SQL教程第四弹(未完)

SQL有很多自带的内聚的函数&#xff08;MAX、MIN、AVG、SUM、COUNT&#xff09; 一、聚合函数&#xff08;Aggregate Functions&#xff09; 这里的括号可以写列名也可以写表达式,下面是一个练习&#xff1a; 二、GROUP BY子句 统计2019-07-01以后每个客户的总销售额 注意这…

Javaweb11-Filter过滤器

Filter过滤器 1.Filter的基本概念&#xff1a; 在Java Servlet中&#xff0c;Filter接口是用来处理HttpServletRequest和HttpServletResponse的对象的过滤器。主要用途是在请求到达Servlet之前或者响应离开Servlet之前对请求或响应进行预处理或后处理。 2.Filter常见的API F…

探展2024世界人工智能大会之合合信息扫描黑科技~

文章目录 ⭐️ 前言⭐️ AIGC古籍修复文化遗产焕新⭐️ 高效的文档图像处理解决方案⭐️ AIGC扫描黑科技一键全搞定⭐️ 行业级的大模型加速器⭐️ 结语 ⭐️ 前言 大家好&#xff0c;我是 哈哥&#xff08;哈哥撩编程&#xff09; &#xff0c;这次非常荣幸受邀作为专业观众参…

重磅!新公司法正式实施,这些变化你必须知道! ️

新公司法来了&#xff01;企业设立和经营必知的关键变动 &#x1f3db;️&#x1f680; 大家好&#xff0c;我是猫头虎&#xff0c;科技自媒体博主。今天我们来聊聊一件大事——新公司法的实施&#xff0c;这对企业设立和经营带来了哪些重大影响&#xff1f;跟着我&#xff0c…

【DDIM】DENOISING DIFFUSION IMPLICIT MODELS【论文精读】【视频讲解】【公式推导】

论文&#xff1a;DENOISING DIFFUSION IMPLICIT MODELS&#xff08;https://arxiv.org/abs/2010.02502&#xff09; B站视频链接 DDIM论文精讲视频 去噪扩散隐模型的论文精读&#xff0c;涉及本文的大部分公式逐步推导。总计3小时的详细论文讲解。 讲解详细对应文档 DDIM视频…

聊聊mysql

记录那些坑 本文会持续更新&#xff0c;陆续更新有关mysql技术内幕、实战优化、面试技巧。 文章目录 前言索引BTree之聚集索引BTree之辅助索引BTree之联合索引BTree之覆盖索引 使用到的工具1、py_innodb_page_info工具2、hexdump工具 总结 前言 重中之重的MySql数据库 mysql…

概率论期末速成(知识点+例题)

考试范围 一&#xff1a; 事件关系运算性质全概率公式、贝叶斯公式古典概型 二&#xff1a; 离散分布律连续密度函数性质 -> 解决三个问题&#xff08;求待定系数、求概率、求密度函数&#xff09;分布函数 -> 解决三个问题常用分布&#xff08;最后一节课的那几个分…

手电筒的光能飞到宇宙尽头吗

如果我们打开手电筒向夜空照一秒再关掉&#xff0c;我们将会看到&#xff0c;在关掉手电筒的一瞬间&#xff0c;手电筒发出的光束也会消失&#xff0c;那么&#xff0c;它发出的光哪去了呢&#xff1f;下面我们就来聊一下这个话题。实际上&#xff0c;我们看到的光束&#xff0…

Spark SQL 概述

Spark SQL 概述 Spark SQL 是 Apache Spark 的一个模块&#xff0c;专门用于处理结构化数据。它集成了 SQL 查询和 Spark 编程的强大功能&#xff0c;使得处理大数据变得更加高效和简便。通过 Spark SQL&#xff0c;用户可以直接在 Spark 中使用 SQL 查询&#xff0c;或者使用 …

ubuntu16.04安装低版本cmake(安装cmake安装)

文章目录 ubuntu16.04安装低版本cmake&#xff08;安装cmake安装&#xff09;1. **下载并解压CMake压缩文件**&#xff1a;- 首先&#xff0c;你需要从CMake的官方网站或其他可靠来源下载cmake-2.8.9-Linux-i386.tar.gz文件。- 然后在终端中使用以下命令解压文件&#xff1a; 2…

BFS:多源BFS问题

一、多源BFS简介 超级源点&#xff1a;其实就是把相应的原点一次性都丢到队列中 二、01矩阵 . - 力扣&#xff08;LeetCode&#xff09; class Solution { public:const int dx[4]{1,-1,0,0};const int dy[4]{0,0,1,-1};vector<vector<int>> updateMatrix(vector…

headerpwn:一款针对服务器响应与HTTP Header的模糊测试工具

关于headerpwn headerpwn是一款针对服务器响应与HTTP Header的模糊测试工具&#xff0c;广大研究人员可以利用该工具查找网络异常并分析服务器是如何响应不同HTTP Header的。 功能介绍 当前版本的headerpwn支持下列功能&#xff1a; 1、服务器安全与异常检测&#xff1b; 2、…

QFileDialog的简单了解

ps&#xff1a;写了点垃圾&#xff08;哈哈哈&#xff09; 它继承自QDialog 这是Windows自己的文件夹 这是两者的对比图&#xff1a; 通过看QFileDialog的源码&#xff0c;来分析它是怎么实现这样的效果的。 源码组成&#xff1a; qfiledialog.h qfiledialog_p.h&#xff…

Python面试宝典第11题:最长连续序列

题目 给定一个未排序的整数数组 nums &#xff0c;找出数字连续的最长序列&#xff08;不要求序列元素在原数组中连续&#xff09;的长度。请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 示例 1&#xff1a; 输入&#xff1a;nums [100,4,200,1,3,2] 输出&#xff1a;…

打造热销爆款:LazadaShopee店铺测评与关键词策略

面对Lazada和Shopee平台上店铺销量难以突破的困境&#xff0c;卖家们往往寻求各种解决方案。其中&#xff0c;店铺测评作为提升店铺信誉、优化产品排名及增加曝光度的有效手段&#xff0c;正逐渐成为卖家关注的焦点。以下将深入探讨店铺测评的好处、实施技巧及自养号的关键要素…

提升校园效率:智慧校园后勤管理中的寻物管理功能

在智慧校园后勤管理体系中&#xff0c;寻物管理功能扮演着连接遗失与找回的桥梁角色&#xff0c;它充分利用现代信息技术&#xff0c;为校园内的师生提供了一套高效、便捷的失物招领解决方案。此功能围绕以下几个核心方面展开。 首先&#xff0c;它支持在线报失与信息登记。一旦…

如何连接到公司的服务器?

1.下载FileZilla FileZilla的下载与安装以及简单使用&#xff08;有图解超简单&#xff09;-CSDN博客 2.打开 3.输入主机 用户名 密码 端口 注&#xff1a;主机支持的协议类型&#xff1a; 4.连接成功 其他方式也有很多&#xff0c;比如通过cmd&#xff0c;html网页等等 3个…

昇思25天学习打卡营第19天|ShuffleNet图像分类

今天是参加昇思25天学习打卡营的第19天&#xff0c;今天打卡的课程是“ShuffleNet图像分类”&#xff0c;这里做一个简单的分享。 1.简介 在第15-18日的学习内容中&#xff0c;我们陆陆续续学习了计算机视觉相关的模型包括图像语义分割、图像分类、目标检测等内容&#xff0c…

中关村软件园发布“数据合规与出境评估服务平台”

在2024中关村论坛年会期间&#xff0c;中关村软件园发布“数据合规与出境评估服务平台”。该平台是中关村软件园结合北京市“两区”建设&#xff0c;立足软件园国家数字服务出口基地和数字贸易港建设&#xff0c;围绕园区内外部企业用户的业务合作、科研创新、跨国运营等场景需…

Python UDP编程之实时聊天与网络监控详解

概要 UDP(User Datagram Protocol,用户数据报协议)是网络协议中的一种,主要用于快速、简单的通信场景。与TCP相比,UDP没有连接、确认、重传等机制,因此传输效率高,但也不保证数据的可靠性和顺序。本文将详细介绍Python中如何使用UDP协议进行网络通信,并包含相应的示例…