//上传excel public function uploadExcel() { //获取当前的请求信息,或者使用助手函数request() $request = \think\Request::instance(); //引入导入Excel第三方库 vendor('PHPExcel.Classes.PHPExcel.PHPExcel'); //实例化PHPExcel类 $excel = new \PHPExcel(); //获得上传文件的信息,file里面的是input框里的名字 $files = request()->file('files'); foreach ($files as $file) { //数据为空返回错误 if (empty($file)) { //退出当前循环,继续下一循环 continue; } //得到文件原名 $fileInfo=$file->getInfo(); $fileOldName=strtolower($fileInfo['name']); //移动到框架应用根目录/public/uploads/目录下 $info = $file->validate(['ext' => 'xlsx,xls'])->move(ROOT_PATH.'public'.DS.'uploads'); //获取上传到后台的文件名 $fileName = $info->getSaveName(); //获取文件路径 $filePath = ROOT_PATH.'public'.DIRECTORY_SEPARATOR.'uploads'.DIRECTORY_SEPARATOR.$fileName; //获取文件后缀 $suffix = $info->getExtension(); //判断哪种类型 if ($suffix == 'xlsx') { $reader = \PHPExcel_IOFactory::createReader('Excel2007'); } else { $reader = PHPExcel_IOFactory::createReader('Excel5'); } //表格列名 $cellName = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'AB', 'AC', 'AD', 'AE', 'AF', 'AG', 'AH', 'AI', 'AJ', 'AK', 'AL', 'AM', 'AN', 'AO', 'AP', 'AQ', 'AR', 'AS', 'AT', 'AU', 'AV', 'AW', 'AX', 'AY', 'AZ'); //载入excel文件 $excel = $reader->load("$filePath", $encode = 'utf-8'); //读取第一张表 $sheet = $excel->getSheet(0); //获取总行数 $row_num = $sheet->getHighestRow(); //获取总列数 //$col_num = $sheet->getHighestColumn(); $columnH = $sheet->getHighestColumn(); //取得最大的列号 $columnCnt = array_search($columnH, $cellName); //获取合并单元格信息 $info=$sheet->getMergeCells(); $data = []; //数组形式获取表格数据 for($_row=1; $_row<=$row_num; $_row++){ //读取内容 for($_column=0; $_column<=$columnCnt; $_column++){ //根据表格的行和列得到表格的值 $cellId = $cellName[$_column].$_row; $cellValue = $sheet->getCell($cellId)->getValue(); //富文本转换字符串 if(is_object($cellValue)){ $cellValue = $cellValue->__toString(); } $rkey=$_row-1; $data[$rkey][$cellName[$_column]] = $cellValue; } } //转化成json字符串 $str=json_encode($data); $arr[]=['tableContent'=>$str,'tableName'=>$fileOldName]; } //批量插入数据 $res=Db::table('bbs_name')->insertAll($arr); } //从数据库中得到Excel的数据 public function getExcel() { $data = Db::name('name')->select(); dump(json_encode($data)); }