使用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.完毕!

 

posted @ 2018-03-03 01:23  哟风  Views(1296)  Comments(0)    收藏  举报