日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

基于TP5框架的excel導入功能

作者:smallmww 更新時間: 2023-08-13 編程語言

準備工作:首先需要下載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

  • 上一篇:沒有了
  • 下一篇:沒有了
欄目分類
最近更新