php實現excel導入數據

表單頁面

<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;   


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章