php实现excel导入数据

来源:互联网 发布:wifi密码破解软件排行 编辑:程序博客网 时间:2024/04/29 14:42

表单页面

<form name="form2" method="post" enctype="multipart/form-data" action="import.php">  

<input type="hidden" name="leadExcel" value="true">  
<table align="center" width="90% " border="0">  
<tr>  
   <td>  
    <input type="file" name="inputExcel"><input type="submit" name="import" value="导入数据 ">  
   </td>  
</tr>  
</table>  

</form>


<?php
if($_POST ['import']=="导入数据 "){   
 
    $leadExcel=$_POST['leadExcel'];   
    //echo $leadExcel;die;
    if($leadExcel == "true")   
    {   
        //echo "OK";die();   
        //获取上传的文件名   
        $filename = $_FILES['inputExcel']['name'];   
        //上传到服务器上的临时文件名   
        $tmp_name = $_FILES['inputExcel']['tmp_name'];   
           
        $msg = uploadFile($filename,$tmp_name);   
        echo $msg;
    }   
}
//导入Excel文件   
function uploadFile($file,$filetempname)    
{   

    //自己设置的上传文件存放路径   
    $filePath = 'upFile/';   
    $str = "";   
    //下面的路径按照你 PHPExcel的路径来修改
    //提高开发效率
    set_include_path('.'. PATH_SEPARATOR .dirname(__FILE__).'\PHPExcel' . PATH_SEPARATOR .get_include_path()); require_once 'PHPExcel.php';   
    require_once 'PHPExcel\IOFactory.php';   
    //require_once 'PHPExcel\Reader\Excel5.php';//excel 2003   
    require_once 'PHPExcel\Reader\Excel2007.php';//excel 2007   
    $filename=explode(".",$file);//把上传的文件名以“.”好为准做一个数组。
    $time=date("y-m-d");//去当前上传的时间    
    $filename[0]=$time;//取文件名t替换    
    $name=implode(".",$filename); //上传后的文件名
    $uploadfile=$filePath.$name;//上传后的文件名地址       
    $result = move_uploaded_file($filetempname,$uploadfile);//假如上传到当前目录下
    if($result) //如果上传文件成功,就执行导入 excel操作   
    {    
       $objReader = PHPExcel_IOFactory::createReader('Excel2007');//use excel2003 和  2007 format     
       $objPHPExcel = PHPExcel_IOFactory::load($uploadfile);//改成这个写法就好了   
       $sheet = $objPHPExcel->getSheet(0);    
       $highestRow = $sheet->getHighestRow(); // 取得总行数    
       $highestColumn = $sheet->getHighestColumn(); // 取得总列数   
       
        //循环读取excel文件,读取一条,插入一条   
        for($j=2;$j<=$highestRow;$j++)   
        {    
            for($k='A';$k<=$highestColumn;$k++)   
             {    
                 $str .= iconv('utf-8','gbk',$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue()).'\\';//读 取单元格  
            }   
            //explode:函 数把字符串分割为数组。  
            $strs =explode("\\",$str);  
              
            //var_dump ($strs);  
            //die();
            $conn = new mysqli('ip', '用户名', '密码','数据库名');
            $sql ="INSERT INTO username(u_name,u_pwd) VALUES ('".$strs[1]."','".$strs[2]."')";       
            //echo $ sql;  
            $re = $conn->query("set names utf-8");//这就是指定数据库字 符集,一般放在连接数据库后面就系了   
            if(! $conn->query($sql)){  
              return false;  
            }  
            $str ="";  
       }   
     
       unlink ($uploadfile); //删除上传的excel文件  
       $msg = "导入成 功!";  
    }else{  
       $msg = "导入失 败!";   
    }   
    return $msg;   


0 0
原创粉丝点击