如何通過PHP將excel的數據導入MySQL中


在開發PHP程序時,很多時候我們會有將數據批量導入數據庫的需求,如學生信息批量添加到數據庫中,而事先用excel編排好,對excel實行操作,便是我們比較常用的選擇方式。

在對excel的操作中,phpExcelReade便是很多人的共同選擇。在具體實現中,我們可以以文件上傳方式將excel文件上傳到服務器中的某個位置,通過以下操作將excel中的數據導入到數據庫后,在將上傳的文件刪除即可。

 

代碼如下:

 

$dir=dirname(__FILE__);                       //獲取當前腳本的絕對路徑
$dir=str_replace(“//”,”/”,$dir).”/”;

$filename=’uploadFile.xls'; //可以定義一個上傳后的文件名稱
$result=move_uploaded_file($_FILES[‘upload’][‘tmp_name’],$dir.$filename);//假如上傳到當前目錄下
if($result)  //如果上傳文件成功,就執行導入excel操作
{
require_once ‘phpExcelReader/Excel/reader.php';
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding(‘utf-8′);//設置在頁面中輸出的編碼方式,而不是utf8

//該方法會自動判斷上傳的文件格式,不符合要求會顯示錯誤提示信息(錯誤提示信息在該方法內部)。
$data->read(“$filename”);  //讀取上傳到當前目錄下名叫$filename的文件

error_reporting(E_ALL ^ E_NOTICE);
//如果excel表帶標題,則從$i=2開始,去掉excel表中的標題部分(要將$i<=改為$i<否則會插入一條多余的空數據)
for ($i = 2; $i < $data->sheets[0][‘numRows’]; $i++)
{
$sql = “INSERT INTO user (stuid,class,name,sex,classNum,tel,addr,remark) VALUES(‘”.
$data->sheets[0][‘cells’][$i][1].”‘,'”.    //學號
$data->sheets[0][‘cells’][$i][2].”‘,'”.    //班級
$data->sheets[0][‘cells’][$i][3].”‘,'”.    //姓名
$data->sheets[0][‘cells’][$i][4].”‘,'”.    //性別
$data->sheets[0][‘cells’][$i][5].”‘,'”.    //班內序號
$data->sheets[0][‘cells’][$i][6].”‘,'”.    //聯系電話
$data->sheets[0][‘cells’][$i][7].”‘,'”.    //聯系地址
$data->sheets[0][‘cells’][$i][8].”‘)”;     //附注

$db->query($sql);
$insert_info.= ” $sql</br>/n”;          //可以用來顯示數據插入的信息

}
$totalNums=$data->sheets[0][‘numRows’]-2;//求出導入的總數據條數(這里是減去2,才會得到去除標題后的總數據)
//echo “導入成功!”;
unlink(“$filename”);                             //刪除上傳的excel文件

}
else
{
$errmsg=”上傳失敗”;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM