PHP使用PHPExcel實(shí)現(xiàn)批量上傳到數(shù)據(jù)庫(kù)的方法
此例子只使用execel2003的.xls文檔,若使用的是其他版本,可以保存格式為“Execel 97-2003 工作簿(*.xls)”即.xls文件類型即可!
功能說(shuō)明:只能上傳Excel2003類型的xls文件,大小不超過(guò)5M。可下載例子模板添加數(shù)據(jù)后即可上傳!
前臺(tái)test.php頁(yè)面
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<meta charset="utf-8">
<body>
<form enctype="multipart/form-data" action="./Process.php" method="post">
<table>
<tr><td align="center" colspan="2"><font style="font-size: 40px; font-family: 華文彩云;" >上傳表格</font></td></tr>
<tr><td>請(qǐng)先<a href="./sample/sample01.xls" rel="external nofollow" >下載excel例子模板</a>編輯后上傳文件</td></tr>
<tr>
<td>請(qǐng)選擇你要上傳的文件</td>
<td><input type="file" name="myfile"></td>
</tr>
<tr><td><input type="submit" value="上傳文件" /></td></tr>
</table>
</form>
</body>
</html>
運(yùn)行結(jié)果:

后臺(tái)Process.php頁(yè)面
<?php
header("Content-type:text/html;charset=utf-8");
//鏈接數(shù)據(jù)庫(kù)
$link = @mysql_connect('localhost','root','') or die('連接數(shù)據(jù)庫(kù)失敗');
mysql_select_db('test',$link);
mysql_query('set names utf8');
function upExecel(){
//判斷是否選擇了要上傳的表格
if (empty($_POST['myfile'])) {
echo "<script>alert(您未選擇表格);history.go(-1);</script>";
}
//獲取表格的大小,限制上傳表格的大小5M
$file_size = $_FILES['myfile']['size'];
if ($file_size>5*1024*1024) {
echo "<script>alert('上傳失敗,上傳的表格不能超過(guò)5M的大小');history.go(-1);</script>";
exit();
}
//限制上傳表格類型
$file_type = $_FILES['myfile']['type'];
//application/vnd.ms-excel 為xls文件類型
if ($file_type!='application/vnd.ms-excel') {
echo "<script>alert('上傳失敗,只能上傳excel2003的xls格式!');history.go(-1)</script>";
exit();
}
//判斷表格是否上傳成功
if (is_uploaded_file($_FILES['myfile']['tmp_name'])) {
require_once 'PHPExcel.php';
require_once 'PHPExcel/IOFactory.php';
require_once 'PHPExcel/Reader/Excel5.php';
//以上三步加載phpExcel的類
$objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
//接收存在緩存中的excel表格
$filename = $_FILES['myfile']['tmp_name'];
$objPHPExcel = $objReader->load($filename); //$filename可以是上傳的表格,或者是指定的表格
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得總行數(shù)
// $highestColumn = $sheet->getHighestColumn(); // 取得總列數(shù)
//循環(huán)讀取excel表格,讀取一條,插入一條
//j表示從哪一行開(kāi)始讀取 從第二行開(kāi)始讀取,因?yàn)榈谝恍惺菢?biāo)題不保存
//$a表示列號(hào)
for($j=2;$j<=$highestRow;$j++)
{
$a = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();//獲取A(業(yè)主名字)列的值
$b = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();//獲取B(密碼)列的值
$c = $objPHPExcel->getActiveSheet()->getCell("C".$j)->getValue();//獲取C(手機(jī)號(hào))列的值
$d = $objPHPExcel->getActiveSheet()->getCell("D".$j)->getValue();//獲取D(地址)列的值
//null 為主鍵id,自增可用null表示自動(dòng)添加
$sql = "INSERT INTO house VALUES(null,'$a','$b','$c','$d')";
// echo "$sql";
// exit();
$res = mysql_query($sql);
if ($res) {
echo "<script>alert('添加成功!');window.location.href='./test.php';</script>";
}else{
echo "<script>alert('添加失敗!');window.location.href='./test.php';</script>";
exit();
}
}
}
}
//調(diào)用
upExecel();
?>
效果為:若未選擇要上傳的文件,會(huì)提示“未選擇表格”;若表格文件超過(guò)5M,提示;若上傳的文件類型不是xls,會(huì)提示!
以上這篇PHP使用PHPExcel實(shí)現(xiàn)批量上傳到數(shù)據(jù)庫(kù)的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
php下統(tǒng)計(jì)用戶在線時(shí)間的一種嘗試
一直以來(lái),在web開(kāi)發(fā)中,準(zhǔn)確統(tǒng)計(jì)用戶在線時(shí)間都是一個(gè)老大難的問(wèn)題,雖然已經(jīng)有很多人去嘗試各種不同的方案,可是畢竟項(xiàng)目不同,所用到的方法也是千差萬(wàn)別2010-08-08
PHP函數(shù)nl2br()與自定義函數(shù)nl2p()換行用法分析
這篇文章主要介紹了PHP函數(shù)nl2br()與自定義函數(shù)nl2p()換行用法,結(jié)合實(shí)例形式分析PHP函數(shù)nl2br實(shí)現(xiàn)換行功能的優(yōu)缺點(diǎn)及自定義函數(shù)nl2p換行功能的使用技巧,需要的朋友可以參考下2016-04-04
php設(shè)計(jì)模式 Interpreter(解釋器模式)
php設(shè)計(jì)模式 Interpreter(解釋器模式),需要的朋友可以參考下。2011-06-06
PHP實(shí)現(xiàn)斷點(diǎn)續(xù)傳亂序合并文件的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)斷點(diǎn)續(xù)傳亂序合并文件的方法,涉及php文件讀寫、傳輸、排序等相關(guān)操作技巧,需要的朋友可以參考下2018-09-09
常見(jiàn)PHP數(shù)據(jù)庫(kù)解決方案分析介紹
您可以用很多的方式創(chuàng)建PHP數(shù)據(jù)庫(kù)設(shè)計(jì)、數(shù)據(jù)庫(kù)訪問(wèn)和基于數(shù)據(jù)庫(kù)的 PHP 業(yè)務(wù)邏輯代碼,但最終一般以錯(cuò)誤告終。本文說(shuō)明了數(shù)據(jù)庫(kù)設(shè)計(jì)和訪問(wèn)數(shù)據(jù)庫(kù)的PHP代碼中出現(xiàn)的常見(jiàn)問(wèn)題,以及在遇到這些問(wèn)題時(shí)如何修復(fù)它們。2015-09-09
從一個(gè)不錯(cuò)的留言本弄的mysql數(shù)據(jù)庫(kù)操作類
本文通過(guò)實(shí)例代碼給大家介紹了mysql數(shù)據(jù)庫(kù)操作類的相關(guān)知識(shí),感興趣的朋友跟隨腳本之家小編一起看看吧2007-09-09
PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之命名空間與自動(dòng)加載類詳解
這篇文章主要介紹了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之命名空間與自動(dòng)加載類,結(jié)合實(shí)例形式分析了php命名空間與自動(dòng)加載類的概念、功能、使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下2016-12-12

