tp5 phpexcel导入excel表格

下载:PHPExcel  https://github.com/PHPOffice/PHPExcel

解压后:Classes文件夹改名为PHPExcel 



方法一:把文件夹PHPExcel 放到根目录vendor文件夹下



方法二:PHPExcel  放到根目录extend文件夹下





html代码:

[html]  view plain  copy
  1. <!DOCTYPE html>  
  2. <html>                  
  3. <head>  
  4.   <meta charset="utf-8">  
  5.   <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">  
  6.   <title>学校管理</title>  
  7.   <link rel="stylesheet" href="__ADMIN__/common/frame/layui/css/layui.css">  
  8. <script type="text/javascript" src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>  
  9. </head>  
  10. <body>  
  11.   
  12. <div class="layui-fluid" >  
  13. <form method="post" action="{:url('student/savestudentImport')}" class="form-signin" enctype="multipart/form-data" >  
  14.     <input name="excel" type="file" class="form-control">  
  15.     <button class="btn btn-lg btn-primary btn-block">导入</button>  
  16. </form>  
  17. </div>  
  18. <script src="__ADMIN__/common/frame/layui/layui.js"></script>  
  19. <script>  
  20. layui.use(['laypage', 'table', 'element', 'layer', 'jquery','form'], function () {  
  21. var table = layui.table;  
  22. layer = layui.layer;  
  23. laypage = layui.laypage;  
  24. element = layui.element;  
  25. form = layui.form;  
  26. $=layui.$;  
  27.     
  28.   
  29. });  
  30. </script>  
  31. </body>  
  32. </html>  

控制器代码:

[html]  view plain  copy
  1. //保存   导入  
  2.     public function savestudentImport(){  
  3.         //import('phpexcel.PHPExcel', EXTEND_PATH);//方法二  
  4.         vendor("PHPExcel.PHPExcel"); //方法一  
  5.         $objPHPExcel = new \PHPExcel();  
  6.   
  7.         //获取表单上传文件  
  8.         $file = request()->file('excel');  
  9.         $info = $file->validate(['size'=>15678,'ext'=>'xlsx,xls,csv'])->move(ROOT_PATH . 'public' . DS . 'excel');  
  10.         if($info){  
  11.             $exclePath = $info->getSaveName();  //获取文件名  
  12.             $file_name = ROOT_PATH . 'public' . DS . 'excel' . DS . $exclePath;   //上传文件的地址  
  13.             $objReader =\PHPExcel_IOFactory::createReader('Excel2007');  
  14.             $obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8');  //加载文件内容,编码utf-8  
  15.             echo "<pre>";  
  16.             $excel_array=$obj_PHPExcel->getsheet(0)->toArray();   //转换为数组格式  
  17.             array_shift($excel_array);  //删除第一个数组(标题);  
  18.             $data = [];  
  19.             $i=0;  
  20.             foreach($excel_array as $k=>$v) {  
  21.                 $data[$k]['title'] = $v[0];  
  22.                 $i++;  
  23.             }  
  24.            $success=Db::name('t_station')->insertAll($data); //批量插入数据  
  25.            //$i=  
  26.            $error=$i-$success;  
  27.             echo "总{$i}条,成功{$success}条,失败{$error}条。";  
  28.            // Db::name('t_station')->insertAll($city); //批量插入数据  
  29.         }else{  
  30.             // 上传失败获取错误信息  
  31.             echo $file->getError();  
  32.         }  
  33.   
  34.     }  


 调用phpexcel方法
方法一: vendor("PHPExcel.PHPExcel");

方法二:import('phpexcel.PHPExcel', EXTEND_PATH);

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

excel2007以上或07以下

$exclePath = $info->getSaveName();  //获取文件名
            $file_name = ROOT_PATH . 'upload' . DS . 'excel' . DS . $exclePath;   //上传文件的地址
            $extension = strtolower( pathinfo($file_name, PATHINFO_EXTENSION) );
            if($extension == 'xlsx') {
                $objReader = \PHPExcel_IOFactory::createReader('Excel2007');
                //加载文件内容,编码utf-8
                $obj_PHPExcel = $objReader->load($file_name, $encode = 'utf-8');  //加载文件内容,编码utf-8
            }else if($extension == 'xls'){
                $objReader = \PHPExcel_IOFactory::createReader('Excel5');
                $obj_PHPExcel = $objReader->load($file_name, $encode = 'utf-8');  //加载文件内容,编码utf-8
            }else{
                return error('请上传excel格式的文件!');
            }
            $excel_array = $obj_PHPExcel->getsheet(0)->toArray();   //转换为数组格式

            array_shift($excel_array);  //删除第一个数组(标题);


<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

https://blog.csdn.net/weixin_37596689/article/details/78970263

http://www.thinkphp.cn/topic/55693.html

https://www.cnblogs.com/MyIsLu/p/6830579.html

https://blog.csdn.net/tianjingang1/article/details/80393403

https://blog.csdn.net/sunxiaowen13/article/details/54864150

https://blog.csdn.net/phpgoalltheway/article/details/79893383


猜你喜欢

转载自blog.csdn.net/han_cui/article/details/80477256