使用PHPExcel插件将Excel表格中数据导入到mysql数据库 (本例未使用PHP框架)
完整步骤:
1.首先下载PHPExcel插件,官网链接: https://codeplexarchive.blob.core.windows.net/archive/projects/PHPExcel/PHPExcel.zip
2.解压后进入PHPExcel\sourceCode\sourceCode\branches选择版本,进入Classes文件夹,将PHPExcel文件夹和PHPExcel.php文件拷贝至项目目录。
3.建立名为userInfo.xls文件,写入数据。

4.在user数据库中建立userInfo表:
CREATE TABLE `userInfo` ( `id` int UNSIGNED NOT NULL AUTO_INCREMENT , `username` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' , `password` varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' , `phone` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT '' , PRIMARY KEY (`id`)
5.建立前端文件userImport.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>Document</title> </head> <body> <form type="file" action="./userImportExcel.php" method="post" enctype="multipart/form-data"> <input type="file" name="file" id="file" /> <br/> <input type="submit" name="submit" value="上传" /> </form> </body> </html>
5.在项目根目录建立uploadFile文件夹用做暂放临时上传文件(见6.第11行)。
6.建立后台文件userImportExcel.php (PHP原生代码,未使用框架)
1 <?php 2 //若使用mysql_connect会提示警告信息Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in F:\wampserver3.1.0_x64\www\MianShi\userImportExcel.php on line 2 3 $con = mysqli_connect("localhost","root","password","user"); 4 mysqli_query($con ,"set names 'gb2312'");//指定数据库字符集防止中文乱码 5 6 $file = $_FILES['file']['name']; 7 $filetempname = $_FILES['file']['tmp_name']; 8 9 10 //自己设置的上传文件存放路径 11 $filePath = './uploadFile/'; 12 require_once './PHPExcel.php'; 13 require_once './PHPExcel/IOFactory.php'; 14 require_once './PHPExcel/Reader/Excel2007.php';//excel 2007 15 16 $filename=explode(".",$file);//把上传的文件名以“.”好为准做一个数组。 17 $time=date("Y-m-d-H-i-s");//去当前上传的时间 18 $filename[0]=$time;//取文件名t替换 19 $name=implode(".",$filename); //上传后的文件名 20 $uploadfile=$filePath.$name;//上传后的文件名地址 21 22 //move_uploaded_file() 函数将上传的文件移动到新位置。若成功,则返回 true,否则返回 false。 23 $result=move_uploaded_file($filetempname,$uploadfile); 24 if($result){ //如果上传文件成功,就执行导入excel操作 25 $objPHPExcel = PHPExcel_IOFactory::load($uploadfile); 26 $sheet = $objPHPExcel->getSheet(0); 27 $highestRow = $sheet->getHighestRow(); // 取得总行数 28 $highestColumn = $sheet->getHighestColumn(); // 取得总列数 29 30 31 //循环读取excel文件,读取一条,插入一条 32 $str = ""; 33 for($j=2;$j<=$highestRow;$j++){ //因为Excel第一行和数据表中的字段相对照,所以$j=2代表从Excel的第二行开始。 34 for($k='A';$k<=$highestColumn;$k++){ 35 $str .= iconv("UTF-8","gbk",$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue()).'\\';//读取单元格 36 } 37 $strs = explode("\\",$str); 38 $sql = "insert into userInfo(username, password, phone) values('".$strs[0]."','".$strs[1]."','".$strs[2]."')"; 39 if(!mysqli_query($con ,$sql)){ 40 return false; 41 } 42 $str = ""; 43 } 44 unlink($uploadfile); //删除上传的excel文件 45 $msg = "导入成功!"; 46 }else{ 47 $msg = "导入失败!"; 48 } 49 echo $msg;
7.完毕!

浙公网安备 33010602011771号