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.pswp.cn/web/44226.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/44226.shtml
英文地址,請注明出處:http://en.pswp.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、…