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,一经查实,立即删除!

相关文章

力扣 202快乐数

快乐数这题有两个关键 一个是求n的 各个位上平方和 另一个是判断是否为快乐数的依据是是否在哈希表中找到已经出现过的数 1求各个位上平方和方法 定义sum sum N除以十取余的平方和 n/10 循环终止条件是n0 2查找一个数是否出现&#xff0c;用哈希表unordered_set &…

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

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

result.h

#ifndef ASYNCIO_RESULT_H #define ASYNCIO_RESULT_H#include <asyncio/exception.h> #include <variant> #include <optional> namespace ASYNCIO_NS {// 结果类封装&#xff08;不是协程函数的返回类型&#xff09; template<typename T> struct Res…

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;这次非常荣幸受邀作为专业观众参…

【常用知识点-Java】读取Properties文件

Author&#xff1a;赵志乾 Date&#xff1a;2024-07-11 Declaration&#xff1a;All Right Reserved&#xff01;&#xff01;&#xff01; 1. 简介 .properties文件是一种简单的文本文件&#xff0c;用于存储键值对&#xff0c;其每个键值对占一行&#xff0c;且键和值之间用…

力扣题解( 最长递增子序列的个数)

673. 最长递增子序列的个数 给定一个未排序的整数数组 nums &#xff0c; 返回最长递增子序列的个数 。 注意 这个数列必须是 严格 递增的。 思路&#xff1a; 用一个maxlen表示当前最长递增数组的长度&#xff0c;maxcount表示最大长度。当进下标为i的元素时&#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…

模拟人机猜数游戏

设计目的 1、加深学生对该课程基础知识和基本理论的理解和掌握&#xff0c;培养学生综合运用所学知识独立 分析和解决问题的能力; 2、培养学生在计算机软硬件开发、理论计算、查阅资料等方面的能力&#xff0c;使学生逐步树立正 确的设计思想; 3、加强理论联系实际&#xff0c…

邦芒支招:职场高效沟通的6个秘诀

​​俗话说得好“良言一句三冬暖&#xff0c;恶语伤人六月寒。”无论在什么单位&#xff0c;社会上竟是形形色色的人等&#xff0c;人过一百&#xff0c;形形色色。每个人都想得到他人赏识、挥洒才华、争得提升。但是&#xff0c;要和陌生的人融洽相处、沟通合作&#xff0c;是…

Android 蓝牙语音通话调试

首先要清楚蓝牙语音通话属于蓝牙得哪一个协议 1、HEADSET 耳机和免提模式,用于蓝牙耳机 2、A2DP (advanced audio distribution profile)高级音频及立体声规范,包括A2DP SINK和A2DP SOURCE 3、HEALTH 健康设备规范,和一些健康设备进行通信 4、OPP (object push profi…

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

考试范围 一&#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…

Makefile--自动识别编译环境(x86还是arm)进行编译

在日常工作中&#xff0c;我们会在虚拟机下的x86系统进行架叉编译&#xff0c;有时需要在arm上直接进行编译。但工程都是一样的&#xff0c;只是Makefile不一样&#xff0c;这时就涉及到Makefile的灵活运用了。以下是一个自动识别编译环境的通用Makefile&#xff1a; TARGET_A…

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

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