美文网首页WEB前端程序开发程序员
thinkphp3.2 phpExcel的导入示例教程

thinkphp3.2 phpExcel的导入示例教程

作者: 前端丶米店 | 来源:发表于2017-04-11 10:53 被阅读0次

    1、首先先把phpexcel的扩展文件放到 ThinkPHP\Library\Vendor目录下

    点我下载phpexcel扩展
    TP的文件上传我就不说了,话不多说,先上代码

              //判断上传的是否是xlsx文件
              if ($_FILES['xlsx']) {
                $xlsx = self::upload_photo($_FILES['xlsx'], ['xlsx']); // 只有.xlsx 格式的图片才可以 添加,调用upload_photo方法
                if($xlsx){
                    $fileModel = new FileModel();
                    $path = $xlsx['src']; //获取图像文件url
                }
              }
            vendor('PHPExcel');
          
            $excel = \PHPExcel_IOFactory::load($path);
            
            
            $excel->setActiveSheetIndex(0);
            $sheet0     =$excel->getSheet(0);
            $rows       =$sheet0->getHighestRow();//行数
            $column     =$sheet0->getHighestColumn();//最大列的字母
            $columnNum  =$this->cellLen[$column];//列数
            $content    =array();
            
            for($currentRow = 2;$currentRow<=$rows;$currentRow++){
                //  获取A行记录
                $content['question_content']    = trim((string)$sheet0->getCell('A'.$currentRow)->getValue());
                //  获取B行记录
                $content['answer_option']       = trim((string)$sheet0->getCell('B'.$currentRow)->getValue());
                //  获取C行记录
                $content['question_answer']     = trim((string)$sheet0->getCell('C'.$currentRow)->getValue());
                //  获取D行记录
                $content['question_type']       = trim((string)$sheet0->getCell('D'.$currentRow)->getValue());
                //  获取D行记录,这个在excel中是日期,需要转换才能用
                $content['add_time']            = $this->excelTime(trim((string)$sheet0->getCell('E'.$currentRow)->getValue()));
                //获取到数据,接下来做你想要的操作就好了
            }
            unlink($path);
    

    附上upload_photo方法

        /**
         * 上传文件
         * @param array $file - $_FILES文件h
         * @param string $path
         * @return string
         */
        public function newupload($files,$ext=null) {
            $ymd = date("Ymd");
    
            $ymd_path = substr($ymd,0,4).'/'.substr($ymd,4,2).'/'.substr($ymd,6,2);
            
            $fileArr = array();
            
            //把多个图的数组转换从array('name'=>array('',''),'type'=>array('',''))为 array(0=>array('name'=>'','type'=>''),1=>array())形式
            if(is_array($files)) {
                foreach($files as $k=>$v) {
                    foreach($v as $num=>$vv) {
                        $fileArr[$num][$k] = $vv;
                    }
                }
            }else {
                $fileArr = array($files);
            }
    
            //文件名称
            //unset($files);
            $ret = array();
    
            foreach($fileArr as $file) {
                if (!$file['name']) {
                    continue;
                }
                $file_ext = substr($file['name'],strrpos($file['name'],'.')+1);
    
                $my_ext = strtolower($file_ext);
                
                //过滤php文件上传
                if($my_ext == 'php'){
                    $this->error("php文件不允许上传!");
                }
                
                if(!is_null($ext) && !in_array($my_ext,$ext)){
                    continue;
                }
                
                $filename = md5(time() . $file['name'] . rand(1, 93333333)) . "." . $file_ext;
                
                $relative_dir = C('DEFAULT_WORK_FILE_PATH') . '/' . $ymd_path;
                
                if(!is_dir($relative_dir)) {
                    mkdir($relative_dir, 0777, true);
                }
    
                $relative_path = $relative_dir . '/' . $filename;
                
                move_uploaded_file($file['tmp_name'], $relative_path);
        
                $suffixArr = explode('.', $filename);
    
                $ret[] = array(
                        'src'       => $filename,
                        'path'      => $relative_dir . '/'
                );
            }
    
            return $ret;
        }
        
        /**
         * 上传单张图片
         * @param array $files
         * @param string $path
         * @return Ambigous <string, multitype:string >
         */
        public function upload_photo($files,$ext=null) {
            $files = self::newupload($files,$ext);
            return $files[0];
        }
    

    excel日期转换时间方法,请点击我查看

    <h1>本文为原创文章,转载请注明出处</h1>
    <h1>觉得本文对你有帮助</h1>
    关注简书mid米店,持续分享中。。。

    相关文章

      网友评论

        本文标题:thinkphp3.2 phpExcel的导入示例教程

        本文链接:https://www.haomeiwen.com/subject/wnptattx.html