phpexcel导入

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29787335/article/details/79420416

最近写了一个项目,主要是给58销售的朋友用的,他需要用到excel导入到数据库,正好研究下。

1.首先下载一个phpexcel到本地,然后解压之后就可以将phpExcel文件夹和phpExcel.php这两个放到vendor目录里面方便引入,

2.显示excel导入的页面,

<form enctype="multipart/form-data" method="post" id="form-admin-role-add" action="{:U('home/index/addExcel')}">
<div>
<input type="file" name="excel" />
<input type="submit" value="导入" class="btn btn-w-m btn-primary btn-outline" />
</div>
</form>

这是导入页面的html代码。

3.写一个接收文件上传的方法,处理文件的名字,把文件放到指定的位置

//接收前台文件,  
public function addExcel()  
    {      
        //接收前台文件  
        $ex = $_FILES['excel']; 
        //重设置文件名  
        $filename = time().substr($ex['name'],stripos($ex['name'],'.')); 

        $path = PUBLIC_DIR.'excel/'.$filename;//设置移动路径  
if(!file_exists(PUBLIC_DIR  . '/'.'excel')){
//makedir 如果文件夹不存在就创建一个文件夹
mkdir(PUBLIC_DIR  . '/'.'excel',0777);
}
        $a = move_uploaded_file($ex['tmp_name'],$path);  
        $exfn = $this->_readExcel($path);  

    }  

这里有一个_readExcel这个方法,还没贴出来,这个是读取excel的方法

4.读取excel并返回数组

public function _readExcel($path)  

    {      
        //引用PHPexcel 类  
vendor("PHPExcel.PHPExcel.PHPExcel");
vendor("PHPExcel.PHPExcel.IOFactory");


        $type = 'Excel2007';//设置为Excel5代表支持2003或以下版本,Excel2007代表2007版  
        $xlsReader = \PHPExcel_IOFactory::createReader($type);    
        $xlsReader->setReadDataOnly(true);  
        $xlsReader->setLoadSheetsOnly(true);  
        $Sheets = $xlsReader->load($path);  
        //开始读取上传到服务器中的Excel文件,返回一个二维数组  
        $dataArray = $Sheets->getSheet(0)->toArray();  
        return $dataArray;  

    }  

到这一步之后你就得到了$exfn,这个就是你excel里面的内容了

建议数据库的字段和excel最好能对上,时间,电话等数据需要谨慎处理,时间格式到了数组会变成一个不正常的浮点数,需要转化下,百度有,方法很简单。

excel导入就算完成了,然后你数据入库只需要写写入就好了,addAll


猜你喜欢

转载自blog.csdn.net/qq_29787335/article/details/79420416