PHP使用PHPExcel实现批量上传到数据库的方法


Posted in PHP onJune 08, 2017

此例子只使用execel2003的.xls文档,若使用的是其他版本,可以保存格式为“Execel 97-2003 工作簿(*.xls)”即.xls文件类型即可!

功能说明:只能上传Excel2003类型的xls文件,大小不超过5M。可下载例子模板添加数据后即可上传!

前台test.php页面

<!DOCTYPE html>
<html>
<head>
  <title></title>
</head>
<meta charset="utf-8">
<body>
<form enctype="multipart/form-data" action="./Process.php" method="post">
  <table>
    <tr><td align="center" colspan="2"><font style="font-size: 40px; font-family: 华文彩云;" >上传表格</font></td></tr>
    <tr><td>请先<a href="./sample/sample01.xls" rel="external nofollow" >下载excel例子模板</a>编辑后上传文件</td></tr>
 <tr>
    <td>请选择你要上传的文件</td>
    <td><input type="file" name="myfile"></td>
    </tr>
    <tr><td><input type="submit" value="上传文件" /></td></tr>
  </table>
</form>
</body>
</html>

运行结果:

PHP使用PHPExcel实现批量上传到数据库的方法

后台Process.php页面

<?php
header("Content-type:text/html;charset=utf-8");

//链接数据库
$link = @mysql_connect('localhost','root','') or die('连接数据库失败');
mysql_select_db('test',$link);
mysql_query('set names utf8');

function upExecel(){

//判断是否选择了要上传的表格
if (empty($_POST['myfile'])) {
  echo "<script>alert(您未选择表格);history.go(-1);</script>";
}

//获取表格的大小,限制上传表格的大小5M
$file_size = $_FILES['myfile']['size'];
if ($file_size>5*1024*1024) {
echo "<script>alert('上传失败,上传的表格不能超过5M的大小');history.go(-1);</script>";
  exit();
}

//限制上传表格类型
$file_type = $_FILES['myfile']['type'];
//application/vnd.ms-excel 为xls文件类型
if ($file_type!='application/vnd.ms-excel') {
  echo "<script>alert('上传失败,只能上传excel2003的xls格式!');history.go(-1)</script>";
 exit();
}

//判断表格是否上传成功
if (is_uploaded_file($_FILES['myfile']['tmp_name'])) {
  require_once 'PHPExcel.php';
  require_once 'PHPExcel/IOFactory.php';
  require_once 'PHPExcel/Reader/Excel5.php';
  //以上三步加载phpExcel的类

  $objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format 
  //接收存在缓存中的excel表格
  $filename = $_FILES['myfile']['tmp_name'];
  $objPHPExcel = $objReader->load($filename); //$filename可以是上传的表格,或者是指定的表格
  $sheet = $objPHPExcel->getSheet(0); 
  $highestRow = $sheet->getHighestRow(); // 取得总行数 
  // $highestColumn = $sheet->getHighestColumn(); // 取得总列数
  
  //循环读取excel表格,读取一条,插入一条
  //j表示从哪一行开始读取 从第二行开始读取,因为第一行是标题不保存
  //$a表示列号
  for($j=2;$j<=$highestRow;$j++) 
  {
    $a = $objPHPExcel->getActiveSheet()->getCell("A".$j)->getValue();//获取A(业主名字)列的值
    $b = $objPHPExcel->getActiveSheet()->getCell("B".$j)->getValue();//获取B(密码)列的值
    $c = $objPHPExcel->getActiveSheet()->getCell("C".$j)->getValue();//获取C(手机号)列的值
    $d = $objPHPExcel->getActiveSheet()->getCell("D".$j)->getValue();//获取D(地址)列的值

    //null 为主键id,自增可用null表示自动添加
    $sql = "INSERT INTO house VALUES(null,'$a','$b','$c','$d')";
    // echo "$sql";
    // exit();
    $res = mysql_query($sql);
    if ($res) {
      echo "<script>alert('添加成功!');window.location.href='./test.php';</script>";
      
    }else{
      echo "<script>alert('添加失败!');window.location.href='./test.php';</script>";
      exit();
    }
  }
}
}

//调用
upExecel();
?>

效果为:若未选择要上传的文件,会提示“未选择表格”;若表格文件超过5M,提示;若上传的文件类型不是xls,会提示!

以上这篇PHP使用PHPExcel实现批量上传到数据库的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP中对数据库操作的封装
Oct 09 PHP
PHP 简易输出CSV表格文件的方法详解
Jun 20 PHP
PHP CURL 多线程操作代码实例
May 13 PHP
PHP微信开发之二维码生成类
Jun 26 PHP
Laravel路由设定和子路由设定实例分析
Mar 30 PHP
php生成验证码,缩略图及水印图的类分享
Apr 07 PHP
php微信开发之带参数二维码的使用
Aug 03 PHP
php类的自动加载操作实例详解
Sep 28 PHP
PHP数组相加操作及与array_merge的区别浅析
Nov 26 PHP
总结一些PHP中好用但又容易忽略的小知识
Jun 02 PHP
PHP压缩图片功能的介绍
Mar 21 PHP
PHP实现常用排序算法的方法
Feb 05 PHP
iis6手工创建网站后无法运行php脚本的解决方法
Jun 08 #PHP
PHP简单获取随机数的常用方法小结
Jun 07 #PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 #PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
Jun 07 #PHP
解决laravel 5.1报错:No supported encrypter found的办法
Jun 07 #PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
Jun 07 #PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
Jun 07 #PHP
You might like
php中使用parse_url()对网址进行解析的实现代码(parse_url详解)
2012/01/03 PHP
php实现MD5加密16位(不要默认的32位)
2013/08/12 PHP
php更新修改excel中的内容实例代码
2014/02/26 PHP
php格式化日期实例分析
2014/11/12 PHP
PHP中mysql_field_type()函数用法
2014/11/24 PHP
php 无限级分类 获取顶级分类ID
2016/03/13 PHP
PHP 实现浏览记录并按日期分组
2017/05/11 PHP
javascript 冒号 使用说明
2009/06/06 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
推荐5 个常用的JavaScript调试技巧
2015/01/08 Javascript
对JavaScript中this指针的新理解分享
2015/01/31 Javascript
jquery简单实现网页层的展开与收缩效果
2015/08/07 Javascript
基于jQuery实现select下拉选择可输入附源码下载
2016/02/03 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
js实现一个猜数字游戏
2017/03/31 Javascript
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
JS函数节流和函数防抖问题分析
2017/12/18 Javascript
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
初试vue-cli使用HBuilderx打包app的坑
2019/07/17 Javascript
nodejs的安装使用与npm的介绍
2019/09/11 NodeJs
vue动态禁用控件绑定disable的例子
2019/10/28 Javascript
JS实现超级好看的鼠标小尾巴特效
2020/12/01 Javascript
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
艺术用品:Arteza
2018/11/25 全球购物
消防先进事迹材料
2014/02/10 职场文书
运动会方阵口号
2014/06/07 职场文书
升职自荐信怎么写
2015/03/05 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
计划生育工作总结2015
2015/04/03 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
python通过新建环境安装tfx的问题
2022/05/20 Python