課程
/后端開發
/PHP
/PHPExcel探索之旅
請問將excel導入mysql數據庫怎么導呢?/(ㄒoㄒ)/~~
而且只導入excel表的部分列,有些列的數據是不需要導入的,請問怎么做啊?大神請指教!
2015-09-14
源自:PHPExcel探索之旅 9-1
正在回答
改為另外一個方法咯。
import.php
session_start(); header("Content-type:text/html;charset:utf-8"); //全局變量 $succ_result=0; $error_result=0; $file=$_FILES['filename']; $max_size="2000000";?//最大文件限制(單位:byte) $fname=$file['name']; $ftype=strtolower(substr(strrchr($fname,'.'),1));
//文件格式 $uploadfile=$file['tmp_name']; if($_SERVER['REQUEST_METHOD']=='POST'){ if(is_uploaded_file($uploadfile)){ ?if($file['size']>$max_size){ echo?"Import?file?is?too?large";? exit; } ?if($ftype!='xls'){ echo?"Import?file?type?is?error"; ?exit;??? } }else{ echo?"The?file?is?not?empty!"; ?exit;? }? }
?
$dir=dirname(__FILE__);//查找當前腳本所在路徑 require?$dir."/db.php";//引入mysql操作類文件 $db=new?db($link);//實例化db類?連接數據庫 require_once?$dir."/PHPExcel/PHPExcel.php";//引入PHPExcel require_once?$dir."/PHPExcel/PHPExcel/IOFactory.php"; require_once?$dir."/PHPExcel/PHPExcel/Reader/Excel5.php"; //stackoverflow?方法 $objReader?=?PHPExcel_IOFactory::createReader('Excel5'); $objReader->setReadDataOnly(true); $objPHPExcel?=?$objReader->load($uploadfile);? $objWorksheet?=?$objPHPExcel->getActiveSheet(); $highestRow?=?$objWorksheet->getHighestRow();? $highestColumn?=?$objWorksheet->getHighestColumn();? $highestColumnIndex?=?PHPExcel_Cell::columnIndexFromString($highestColumn);? $rows?=?array();
for?($row?=?2;?$row?<=?$highestRow;?++$row)?{ for?($col?=?0;?$col?<=?$highestColumnIndex;?++$col)?{ $rows[$col]?=?mysql_real_escape_string($objWorksheet->getCellByColumnAndRow($col,?$row)->getValue()); } //print_r($rows); mysql_query("set?names?utf8"); mysql_query("INSERT?INTO?`user`(username,class,score)? VALUES?('$rows[0]',$rows[1],$rows[2])")or?die("執行錯誤"); ?$insert_num=mysql_affected_rows(); ?if($insert_num>0){ $succ_result+=1; }else{ $error_result+=1; ??} }
echo?"插入成功".$succ_result."條數據?。。?lt;br>"; echo?"插入失敗".$error_result."條數據?。?!";
昨天還能插入兩行,今天就只能插入一行,這是為什么呢/(ㄒoㄒ)/~~
自己解決了,我寫了一個import.php和import.html,其中的db和dbconfig請參考Veo老師《PHPHExcel的探索之旅課程》
import.html代碼
<!DOCTYPE?html> <html><head><meta?http-equiv="Content-Type"?content="text/html";?charset="UTF-8"> <meta?name="viewport"?content="width=device-width,?initial-scale=1.0,?minimum-scale=1.0?,?maximum-scale=1.0,?user-scalable=0"> <title>Excel導入phpMyAdmin數據庫</title> <form?name="frm1"?enctype="multipart/form-data"?action="import.php"?method="post"> ???<input?name="filename"?type="file"?/><input?name="submit"?type="submit"?value="導入數據庫"?/> </form>
import.php代碼
<?php session_start(); header("Content-type:text/html;charset:utf-8"); //全局變量 $succ_result=0; $error_result=0; $file=$_FILES['filename']; $max_size="2000000";?//最大文件限制(單位:byte) $fname=$file['name']; $ftype=strtolower(substr(strrchr($fname,'.'),1)); ?//文件格式 ?$uploadfile=$file['tmp_name']; ?if($_SERVER['REQUEST_METHOD']=='POST'){ ?if(is_uploaded_file($uploadfile)){ ??if($file['size']>$max_size){ ?echo?"Import?file?is?too?large";? ?exit; ?} ??if($ftype!='xls'){ ?echo?"Import?file?type?is?error"; ??exit;??? ?} ?}else{ ?echo?"The?file?is?not?empty!"; ??exit;? ?}? ?} ? $dir=dirname(__FILE__);//查找當前腳本所在路徑 require?$dir."/db.php";//引入mysql操作類文件 $db=new?db($phpexcel);//實例化db類?連接數據庫 require_once?$dir."/PHPExcel/PHPExcel.php";//引入PHPExcel require_once?$dir."/PHPExcel/PHPExcel/IOFactory.php"; require_once?$dir."/PHPExcel/PHPExcel/Reader/Excel5.php"; $objReader?=?PHPExcel_IOFactory::createReader('Excel5');//use?excel2007?for?2007?format? $objPHPExcel?=?$objReader->load($uploadfile);? $sheet?=?$objPHPExcel->getSheet(0);? $highestRow?=?$sheet->getHighestRow();?//?取得總行數? $highestColumn?=?$sheet->getHighestColumn();?//?取得總列數 ??$arr_result=array(); ??$strs=array(); for($j=2;$j<=$highestRow;$j++) ?{? unset($arr_result); unset($strs); ?for($k='A';$k<=?$highestColumn;$k++) {? ?//讀取單元格 ??$arr_result??.=?$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue().','; } ?$strs=explode(",",$arr_result); ?//echo?$strs[0];exit; ?$sql="insert?into?`user`(username,score,class)?values?('$strs[0]',$strs[1],$strs[2])"; ?echo?$sql."<br/>";? ?mysql_query("set?names?utf8"); ?$result=mysql_query($sql)?or?die("執行錯誤"); ?$insert_num=mysql_affected_rows(); ??if($insert_num>0){ $succ_result+=1; }else{ $error_result+=1; ???} } echo?"插入成功".$succ_result."條數據?。?!<br>"; echo?"插入失敗".$error_result."條數據?。?!";
其中的phpexcel類庫的路徑根據自己的改,數據庫配置你另外寫也可以。insert into 語句根據你自己的情況自己寫。
舉報
由淺入深學習PHPExcel導入導出操作,玩轉任何文件操作需求
4 回答如果有如何把excel表數據導入MYSQL就好了。
1 回答用php將execl中的數據導入到mysql數據庫中
4 回答如何讀取 Excel 中數據到mysql中 ?
1 回答大數據EXCEL 導入數據庫(50W+), 要怎么處理
1 回答phpexcel導出的數據中文是false
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2015-09-18
改為另外一個方法咯。
import.php
?
2015-09-15
昨天還能插入兩行,今天就只能插入一行,這是為什么呢/(ㄒoㄒ)/~~
2015-09-14
自己解決了,我寫了一個import.php和import.html,其中的db和dbconfig請參考Veo老師《PHPHExcel的探索之旅課程》
import.html代碼
import.php代碼
其中的phpexcel類庫的路徑根據自己的改,數據庫配置你另外寫也可以。insert into 語句根據你自己的情況自己寫。