view层
<form action=\"{:url(\'system/exceladd1/daoru\')}\" method=\"post\" enctype=\"multipart/form-data\"><label for=\"file\">Filename:</label><input type=\"file\" name=\"file\" id=\"file\" /><br /><input type=\"submit\" name=\"submit\" value=\"Submit\" /></form>
controller层
<?phpnamespace app\\system\\controller;use PhpOffice\\PhpSpreadsheet\\IOFactory;use PhpOffice\\PhpSpreadsheet\\Spreadsheet;use think\\Controller;class Exceladd1 extends Controller{public function daoru(){header(\"content-type:text/html;charset=utf-8\");$file = $this->request->file(\'file\');// 移动到框架应用根目录/public/uploads/ 目录下 存$info = $file->move(ROOT_PATH . \'public\' .DS.\'uploads\'. DS . \'excel\');if ($info) {//获取上传到后台的文件名$fileName = $info->getSaveName();//获取文件路径.$filePath =ROOT_PATH . \'public\' .DS.\'uploads\'. DS . \'excel\'. DS .$fileName;//获取文件后缀$suffix = $info->getExtension();// 有Xls和Xlsx和Cvs格式三种if ($suffix==\"xls\"){$reader = IOFactory::createReader(\'Xls\');}elseif ($suffix==\"xlsx\"){$reader = IOFactory::createReader(\'Xlsx\');}elseif ($suffix==\"csv\"){$reader = IOFactory::createReader(\'Csv\');}//载入excel文件$excel = $reader->load($filePath);//读取第一张表$sheet = $excel->getSheet(0);//var_dump($sheet);die();//获取总行数$row_num = $sheet->getHighestRow();//获取总列数$col_num = $sheet->getHighestColumn();$a=0;//将表格里面的数据循环到数组中for($i=2;$i<=$row_num;$i++){// 如果A列(题目内容)就将数据存到数据库中if($excel->getActiveSheet()->getCell(\"A\".$i)->getValue()){//*为什么$i=2? (因为Excel表格第一行应该是题目,选项,班级,从第二行开始,才是我们要的数据。)$data[$a][\'single_title\'] = $excel->getActiveSheet()->getCell(\"A\".$i)->getValue();//单选题目$data[$a][\'opt_A\'] = $excel->getActiveSheet()->getCell(\"B\".$i)->getValue();//选项A$data[$a][\'opt_B\'] = $excel->getActiveSheet()->getCell(\"C\".$i)->getValue();//选项B$data[$a][\'opt_C\'] = $excel->getActiveSheet()->getCell(\"D\".$i)->getValue();//选项C$data[$a][\'opt_D\'] = $excel->getActiveSheet()->getCell(\"E\".$i)->getValue();//选项D$data[$a][\'opt_E\'] = $excel->getActiveSheet()->getCell(\"F\".$i)->getValue();//选项E$data[$a][\'createtime\'] = time();//创建时间$data[$a][\'right\'] = $excel->getActiveSheet()->getCell(\"H\".$i)->getValue();//正确答案$data[$a][\'knowledge\'] = $excel->getActiveSheet()->getCell(\"I\".$i)->getValue();//知识点$data[$a][\'picture\'] = $excel->getActiveSheet()->getCell(\"J\".$i)->getValue();$data[$a][\'music\'] = $excel->getActiveSheet()->getCell(\"K\".$i)->getValue();$data[$a][\'analysis\'] = $excel->getActiveSheet()->getCell(\"L\".$i)->getValue();// 这里的数据根据自己表格里面有多少个字段自行决定}$a++;}//往数据库添加数据// dump($data);$aa = Db(\'single\')->insertAll($data);if($aa){$res[\'code\']=1;$res[\'msg\'] = \'导入成功!\';}else{$res[\'code\']=0;$res[\'msg\'] = \'导入失败!\';}return json($res);}else {return \"<script>alert(\'文件过大或格式不正确导致上传失败-_-!\');window.history.back(-1);</script>\";}return $this->fetch();}}