ThinkPHPphp 导入表格去除样式,代码仅供参考use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\IOFactory; public function import_demo(){ // 设置PHP默认字符集为UTF-8 ini作者王明昌发布时间2024-10-10最后更新2024-10-10复制use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; use PhpOffice\PhpSpreadsheet\IOFactory; 复制 public function import_demo(){ // 设置PHP默认字符集为UTF-8 ini_set('default_charset', 'UTF-8'); //获取表格的大小,限制上传表格的大小5M $file_size = $_FILES['file']['size']; if ($file_size > 5 * 1024 * 1024) { $this->error('文件大小不能超过5M'); exit(); } // dd($file_size); //限制上传表格类型 $fileExtendName = substr(strrchr($_FILES['file']["name"], '.'), 1); //application/vnd.ms-excel 为xls文件类型 if ($fileExtendName == 'csv') { $this->error('须为xls或xlsx格式,不能是csv格式!'); exit(); } if (is_uploaded_file($_FILES['file']['tmp_name'])) { if ($fileExtendName =='xlsx') { $objReader = IOFactory::createReader('Xlsx'); $filename = $_FILES['file']['tmp_name']; }elseif ($fileExtendName =='xls') { $objReader = IOFactory::createReader('Xls'); $filename = $_FILES['file']['tmp_name']; }elseif ($fileExtendName=='csv') { $objReader = IOFactory::createReader('Csv'); $filename = $_FILES['file']['tmp_name']; } // dd(1); $reader = IOFactory::createReaderForFile($filename); $reader->setReadDataOnly(true); // 只读取数据,忽略样式 $spreadsheet = $reader->load($filename); $sheet = $spreadsheet->getActiveSheet(); $data = $sheet->toArray(null, true, true, true); // dd($data); $num_all= 0; $num_success= 0; $save_data = []; $num_add = 0; $num_update = 0; foreach($data as $k=>$vo){ if($k>1){ $num_all++; $save_data[$k] = [ 'cid' => $vo['A'], 'title' => mb_convert_encoding(isset_arr_key($vo, 'B', ''), 'UTF-8', 'auto'), 'dy' => isset_arr_key($vo, 'C', ''), 'xh' => isset_arr_key($vo, 'D', ''), 'summary' => isset_arr_key($vo, 'E', ''), 'pic' => isset_arr_key($vo, 'F', ''), 'album' => isset_arr_key($vo, 'G', ''), 'brand' => isset_arr_key($vo, 'H', ''), 'manufacture' => isset_arr_key($vo, 'I', ''), 'append_spe' => isset_arr_key($vo, 'J', ''), 'append_oe' => isset_arr_key($vo, 'K', ''), 'append_ref' => isset_arr_key($vo, 'L', ''), 'append_ada' => isset_arr_key($vo, 'M', ''), 'append_com' => isset_arr_key($vo, 'N', ''), 'append_mou' => isset_arr_key($vo, 'O', ''), 'append' => isset_arr_key($vo, 'P', ''), 'ctime' => time() ]; // dd($save_data); //移除首字母C- $save_data[$k]['cid'] = str_replace('C-','',$save_data[$k]['cid']); //判断是否存在 $is_exist = db('post')->where([['title','=',$save_data[$k]['title']],['status','<>',9]])->find(); if($is_exist){ $is_update = db('post')->where(['id'=>$is_exist['id']])->update($save_data[$k]); if($is_update){ $num_update++; } }else{ $is_add = db('post')->insert($save_data[$k]); if($is_add){ $num_add++; } } } } return jssuccess('导入成功,新增数量:'.$num_add.',修改数量:'.$num_update); } die; }
2018-02-27tp5controller与model使用数据库控制器里使用数据库 use think\Db; $info = Db::table('fly_user')->select();//用些前缀,全部查询 $info = Db::table('fly_u
2018-04-30TP5错误 | A non well formed numeric value encountered数据表字段是create_time timestamp 默认:CURRENT_TIMESTAMP 使用时间会出现以下错误: A non well formed numeric value encoun
2018-02-02tp3.2-if三层嵌套问题if标签 value1 value2 value3 if标签不支持三层嵌套,所以第三层不要用if标签,用eq标签;就能解决三层嵌套。 相等不相等 还有更多比较标签可以使用 http://documen
2018-07-04转载 | ThinkPHP5+Layui实现图片上传加预览 图片 上传图片 layui.use('upload',function(){ var upload = layui.upload, jq = layui.jquery; upload.render