PHPExcel如何将excel文件导入MySQL数据库?
请问将excel导入mysql数据库怎么导呢?/(ㄒoㄒ)/~~
而且只导入excel表的部分列,有些列的数据是不需要导入的,请问怎么做啊?大神请指教!
请问将excel导入mysql数据库怎么导呢?/(ㄒoㄒ)/~~
而且只导入excel表的部分列,有些列的数据是不需要导入的,请问怎么做啊?大神请指教!
2015-09-14
改为另外一个方法咯。
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."条数据!!!<br>"; echo "插入失败".$error_result."条数据!!!";
自己解决了,我写了一个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 语句根据你自己的情况自己写。
举报