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

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

在對excel的操做中,phpExcelReade即是不少人的共同選擇。在具體實現中,咱們能夠以文件上傳方式將excel文件上傳到服務器中的某個位置,經過如下操做將excel中的數據導入到數據庫後,在將上傳的文件刪除便可。sql

 

代碼以下:數據庫

 

$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=」上傳失敗」;
}
相關文章
相關標籤/搜索