一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

Yii 导入excel文件的例子

时间:2022-06-25 00:52:25 编辑:袖梨 来源:一聚教程网


public function Getexcel($file){
   $file=$_FILES['file']['tmp_name'];
   Yii::import("special.extensions.PHPExcel");
   $PHPExcel = new PHPExcel();
       $PHPReader = new PHPExcel_Reader_Excel2007();
       if(!$PHPReader->canRead($file)){
          $PHPReader = new PHPExcel_Reader_Excel5();
          if(!$PHPReader->canRead($file)){
             return false;
           }
        }
        $PHPExcel = $PHPReader->load($file);
        $currentSheet = $PHPExcel->getSheet(0);//读取第一个工作表
        $allColumn = $currentSheet->getHighestColumn();//取得最大的列号
        $allRow = $currentSheet->getHighestRow();//取得一共有多少行
        /**从第二行开始输出,因为excel表中第一行为列名*/
        $arr=array();
        for($currentRow = 4;$currentRow <= $allRow;$currentRow++){
            /**从第A列开始输出*/
            for($currentColumn= 'A';$currentColumn<= $allColumn; $currentColumn++){
                $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65,$currentRow)->getValue(); /*ord()将字符转为十进制数*/

                /**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将gb2312编码转为utf-8编码输出*/
                //$arr[$currentRow][]=  iconv('utf-8','gb2312', $val)."\t";
                $arr[$currentRow][]=  trim($val);
            }
        }

        //删除全部为空的行
        foreach ($arr as $key=>$vals){
            $tmp = '';
            foreach($vals as $v){
                $tmp .= $v;
            }
            if(!$tmp) unset($arr[$key]);
        }
       return $arr;
}

例子没有导入到数据库那段代码,其实也简单只要读之后生成sql再执行即可导入到数据库在此小编就不介绍了

热门栏目