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生成二维码的几种方式整理及使用实例
Jun 03 PHP
php $_SERVER windows系统与linux系统下的区别说明
Feb 14 PHP
win7 64位系统 配置php最新版开发环境(php+Apache+mysql)
Aug 15 PHP
用 Composer构建自己的 PHP 框架之使用 ORM
Oct 30 PHP
php快速查找数据库中恶意代码的方法
Apr 01 PHP
php中PDO方式实现数据库的增删改查
May 17 PHP
PHP判断手机是IOS还是Android
Dec 09 PHP
PHP闭包函数传参及使用外部变量的方法
Mar 15 PHP
PHP实现的简单在线计算器功能示例
Aug 02 PHP
PHP7扩展开发教程之Hello World实现方法示例
Aug 03 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 PHP
PHP自动生成缩略图函数的源码示例
Mar 18 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
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
Ajax 数据请求的简单分析
2011/04/05 Javascript
php析构函数的具体用法小结
2014/03/11 Javascript
js获取客户端网卡的IP地址、MAC地址
2014/03/26 Javascript
JS 实现列表与多选框选择附预览动画
2014/10/29 Javascript
JavaScript获取网页表单提交方式的方法
2015/04/02 Javascript
javascript实现table表格隔行变色的方法
2015/05/13 Javascript
JS判断元素是否在数组内的实现代码
2016/03/30 Javascript
jQuery实现三级菜单的代码
2016/05/09 Javascript
js实现倒计时及时间对象
2016/11/15 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
前端页面文件拖拽上传模块js代码示例
2017/05/19 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
vue select二级联动第二级默认选中第一个option值的实例
2018/01/10 Javascript
Vue服务器渲染Nuxt学习笔记
2018/01/31 Javascript
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
JavaScript实现的开关灯泡点击切换特效示例
2019/07/08 Javascript
mpvue微信小程序的接口请求fly全局拦截代码实例
2019/11/13 Javascript
vue移动端使用canvas签名的实现
2020/01/15 Javascript
JavaScript中的类型检查
2020/02/03 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
Python基于递归和非递归算法求两个数最大公约数、最小公倍数示例
2018/05/21 Python
WxPython建立批量录入框窗口
2019/02/27 Python
PYQT5实现控制台显示功能的方法
2019/06/25 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
如何在Django项目中引入静态文件
2019/07/26 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
Pycharm Available Package无法显示/安装包的问题Error Loading Package List解决
2020/09/18 Python
基于Python爬取股票数据过程详解
2020/10/21 Python
Room Mate Hotels美国:西班牙酒店品牌
2018/04/10 全球购物
北体毕业生求职信
2014/02/28 职场文书
低碳环保倡议书
2014/04/14 职场文书
小学师德标兵先进事迹材料
2014/05/25 职场文书
应届生自荐信
2014/06/30 职场文书
毕业论文致谢范文
2015/05/14 职场文书
公司团队口号霸气押韵
2015/12/24 职场文书