網站首頁 編程語言 正文
準備工作:首先需要下載PHPExcel文件放入vendor目錄下。
導入功能控制器類對應的方法的書寫如下所示:
public function submitData()
{
if (request()->isPost()) {
require "../vendor/PHPExcel/Classes/PHPExcel.php"; //引入PHPExcel文件路徑并運行文件,當文件報錯時會產生一個致命錯誤并且終止執行,
// vendor("PHPExcel.PHPExcel"); //處理Excel文件請求
$file = request()->file('file'); //加載excel文件
if (is_null($file)) {
return $this->success("上傳文件不能為空");
}
$info = $file->validate(['size' => 1567800, 'ext' => 'xlsx,xls,csv'])->move(ROOT_PATH . 'public' . DS . 'uploads' . DS . 'excel'); //validate()用于表單驗證,這里驗證文件后綴名稱,尺寸大小
if ($info) {
$exclePath = $info->getSaveName(); //獲取文件名
$file_name = ROOT_PATH . 'public' . DS . 'uploads' . DS . 'excel' . DS . $exclePath; //上傳文件的地址
// $objReader = \PHPExcel_IOFactory::createReader('Excel2007');
// $obj_PHPExcel = $objReader->load($file_name,);//加載文件內容,編碼utf-8
$obj_PHPExcel = \PHPExcel_IOFactory::load($file_name);//$encode='utf-8' //加載文件內容,編碼utf-8
echo "<pre>";
$excel_array = $obj_PHPExcel->getsheet(0)->toArray(); //轉換為數組格式
array_shift($excel_array); //刪除第一個數組(標題);
//邏輯代碼
$data = [];
$i = 0;
foreach ($excel_array as $k => $v) { //遍歷循環excel對應的數據的數組每一列的內容
$data[$k]['name'] = $v[1];
$data[$k]['gender']=$v[2];
if($v[3]=='一班'){
$classId=1;
}else if($v[3]=='二班'){
$classId=2;
}else if($v[3]=='三班'){
$classId=3;
}else{
$classId=Null;
}
$data[$k]['class_id']=$classId;
// if($request->ext($v[4])=='jpg'){
// echo 'ext: ' . $request->ext($v[4]);
// }
$data[$k]['photo']=$v[4];
$i++;
}
// exit;
var_dump($data);
$success=0;
for($j=0;$j<$i;$j++){
$sql = db('student')->insert($data[$j]); //批量插入數據
var_dump($sql);
if($sql){
$success++;
}
}
// $success = db('student')->insertAll($data); //批量插入所有數據
$error = $i - $success;
echo "總{$i}條,成功{$success}條,失敗{$error}條。";
}else{
// 上傳失敗獲取錯誤信息
echo $file->getError();
}
}
}
里面一些信息需要進行一下修改。
原文鏈接:https://blog.csdn.net/smallmww/article/details/129338936
- 上一篇:沒有了
- 下一篇:沒有了
相關推薦
- 2022-12-04 Android嵌套線性布局玩法坑解決方法_Android
- 2023-07-25 使用Http請求調用第三方API
- 2022-06-15 C++?詳細講解stack與queue的模擬實現_C 語言
- 2022-09-03 Nginx文件已經存在全局反向代理問題排查記錄_nginx
- 2023-03-28 Python使用機器學習模型實現溫度預測詳解_python
- 2022-04-12 iOS?block的值捕獲與指針捕獲詳解_IOS
- 2022-11-28 協程作用域概念迭代RxTask?實現自主控制_Android
- 2022-09-07 在SQL?Server中使用?Try?Catch?處理異常的示例詳解_MsSql
- 欄目分類
-
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支