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
自己动手做一个SQL解释器
Oct 09 PHP
如何使用脚本模仿登陆过程
Nov 22 PHP
关于php curl获取301或302转向的网址问题的解决方法
Jun 02 PHP
php入门学习知识点三 PHP上传
Jul 14 PHP
php 利用socket发送HTTP请求(GET,POST)
Aug 24 PHP
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
Sep 20 PHP
Zend Framework教程之Zend_Config_Xml用法分析
Mar 23 PHP
php实现在线通讯录功能(附源码)
May 13 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
Feb 03 PHP
[原创]php使用strpos判断字符串中数字类型子字符串出错的解决方法
Apr 01 PHP
PHP中Static(静态)关键字功能与用法实例分析
Apr 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 cron中的批处理
2008/09/16 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
Zend Framework分页类用法详解
2016/03/22 PHP
PHP通过文件路径获取文件名的实例代码
2018/10/14 PHP
利用javascript查看html源文件
2006/11/08 Javascript
看了就知道什么是JSON
2007/12/09 Javascript
走出JavaScript初学困境—js初学
2008/12/29 Javascript
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
jquery实现的树形目录实例
2015/06/26 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
JavaScript动态绑定详解
2017/09/14 Javascript
详解vue移动端日期选择组件
2018/02/22 Javascript
深入Node TCP模块的理解
2019/03/13 Javascript
详解js实时获取并显示当前时间的方法
2019/05/10 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
[01:14:19]NAVI vs Mineski 2019国际邀请赛淘汰赛 败者组BO1 8.20.mp4
2020/07/19 DOTA
零基础写python爬虫之爬虫的定义及URL构成
2014/11/04 Python
python获得linux下所有挂载点(mount points)的方法
2015/04/29 Python
python reduce 函数使用详解
2017/12/05 Python
python正则表达式去除两个特殊字符间的内容方法
2018/12/24 Python
OpenCV 模板匹配
2019/07/10 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
Python迭代器Iterable判断方法解析
2020/03/16 Python
Python基于QQ邮箱实现SSL发送
2020/04/26 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
python 基于opencv 实现一个鼠标绘图小程序
2020/12/11 Python
CSS3 :default伪类选择器使用简介
2018/03/15 HTML / CSS
英国领先的男装设计师服装购物网站:Mainline Menswear
2018/02/04 全球购物
美国爆米花工厂:The Popcorn Factory
2019/09/14 全球购物
宣传活动总结范文
2014/07/01 职场文书
干部作风建设心得体会
2014/10/22 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
班干部竞选演讲稿(精选5篇)
2019/09/24 职场文书
React 高阶组件HOC用法归纳
2021/06/13 Javascript