php实现选择Excel表格数据导入MySQL

数据库表创建

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`))

   <form type="file" action="" method="post" enctype="multipart/form-data">
        <input type="file" name="file" id="file" /> 
       
        <input type="submit" name="submit" value="上传" />
    </form>
    
    
    
     <?php
     //若使用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 
     $con = mysqli_connect("localhost","root","root","sjlr");
     mysqli_query($con ,"set names 'gb2312'");//指定数据库字符集防止中文乱码  
     
     $file = $_FILES['file']['name'];
     $filetempname = $_FILES['file']['tmp_name'];
     
 
     //自己设置的上传文件存放路径
     $filePath = 'uploadFile/';
     require_once 'PHPExcel-1.8/Classes/PHPExcel.php';
     require_once 'PHPExcel-1.8/Classes/PHPExcel/IOFactory.php';
     require_once 'PHPExcel-1.8/Classes/PHPExcel/Reader/Excel2007.php';//excel 2007
 
     $filename=explode(".",$file);//把上传的文件名以“.”好为准做一个数组。 
     $time=date("Y-m-d-H-i-s");//去当前上传的时间 
     $filename[0]=$time;//取文件名t替换 
     $name=implode(".",$filename); //上传后的文件名 
     $uploadfile=$filePath.$name;//上传后的文件名地址 
 
     //move_uploaded_file() 函数将上传的文件移动到新位置。若成功,则返回 true,否则返回 false。
     $result=move_uploaded_file($filetempname,$uploadfile);
     if($result){ //如果上传文件成功,就执行导入excel操作
         $objPHPExcel = PHPExcel_IOFactory::load($uploadfile);
         $sheet = $objPHPExcel->getSheet(0); 
         $highestRow = $sheet->getHighestRow(); // 取得总行数 
         $highestColumn = $sheet->getHighestColumn(); // 取得总列数
            
 
     //循环读取excel文件,读取一条,插入一条
         $str = "";
         for($j=2;$j<=$highestRow;$j++){  //因为Excel第一行和数据表中的字段相对照,所以$j=2代表从Excel的第二行开始。
             for($k='A';$k<=$highestColumn;$k++){ 
                 $str .= iconv("UTF-8","gbk",$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue()).'\\';//读取单元格
             } 
             $strs = explode("\\",$str);
             $sql = "insert into userInfo(username, password, phone) values('".$strs[0]."','".$strs[1]."','".$strs[2]."')";
             if(!mysqli_query($con ,$sql)){
                 return false;
             }
             $str = "";
         } 
         unlink($uploadfile); //删除上传的excel文件
         $msg = "导入成功!";
     }else{
         $msg = "导入失败!";
     }
     echo  $msg;
?> 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zxj19880502

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值