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

此例子只使用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>

运行结果:

后台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实现批量上传到数据库的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • php中数据的批量导入(csv文件)

    有时写程序时后台要求把大量数据导入数据库中,比如计算机考试成绩的查询.电话簿的数据等一般都是存放在excel中的,这时我们可把数据导出成csv文件,然后通过以下程序即可在后台批量导入数据到数据库中. 下面只是主要程序部分: <?php /***************************************************作者:冲星/arcow**************************njj@nuc.edu.cn*****************************

  • php将csv文件导入到mysql数据库的方法

    本文实例讲述了php将csv文件导入到mysql数据库的方法.分享给大家供大家参考.具体分析如下: 本程序实现数据导入原理是先把csv文件上传到服务器,然后再通过php的fopen与fgetcsv文件把数据保存到数组,然后再用while把数据一条条插入到mysql数据库,代码如下: 复制代码 代码如下: <?php $fname = $_files['myfile']['name']; $do = copy($_files['myfile']['tmp_name'],$fname); if ($

  • php实现批量上传数据到数据库(.csv格式)的案例

    友情提示:上传数据的文档需要转化为.csv格式的文档 前端代码: <form name="importForm" action="import.php" method="POST" enctype="multipart/form-data"> <input type="hidden" value="import_goods" name="file"&

  • php批量添加数据与批量更新数据的实现方法

    本文实例讲述了php批量添加数据与批量更新数据的实现方法.分享给大家供大家参考.具体分析如下: php如果要批量保存数据我们只要使用sql的insert into语句就可能实现数据批量保存了,如果是更新数据使用update set就可以完成更新了,操作方法都非常的简单,下面整理两个例子. 批量数据录入 设计方法:同时提交多条表单记录,为每一条记录设置相同的文本域名称,然后在表单处理页中,通过for循环来读取提取表单提交的数据,最后以数据的形式将数据逐条添加到数据库中. 其中,应用一个count(

  • PHP编程实现csv文件导入mysql数据库的方法

    本文实例讲述了PHP编程实现csv文件导入mysql数据库的方法.分享给大家供大家参考,具体如下: config.db.php内容如下: <?php $username="root"; $userpass="123"; $dbhost="localhost"; $dbdatabase="credits2stakes"; //生成一个连接 $db_connect=mysql_connect($dbhost,$usernam

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

    此例子只使用execel2003的.xls文档,若使用的是其他版本,可以保存格式为"Execel 97-2003 工作簿(*.xls)"即.xls文件类型即可! 功能说明:只能上传Excel2003类型的xls文件,大小不超过5M.可下载例子模板添加数据后即可上传! 前台test.php页面 <!DOCTYPE html> <html> <head> <title></title> </head> <meta

  • Thinkphp5+PHPExcel实现批量上传表格数据功能

    1.首先要下载PHPExcel放到vendor文件夹下,我的路径是:项目/vendor/PHPExcel/,把下载的PHPExcel文件放在这里 2.前端代码 <!DOCTYPE html> <html> <head> <title>批量导入数据</title> </head> <body> <form action="{:url('/index/index/importExcel')}" met

  • jquery插件uploadify实现带进度条的文件批量上传

    有时项目中需要一个文件批量上传功能时,个人认为uploadify是快速简便的解决方案,分享给大家供大家参考,具体如下 先上效果图: 具体代码如下: 在页面中如下 完整页面代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <

  • MVC文件上传支持批量上传拖拽及预览文件内容校验功能

    网站中的上传相信大家都不陌生,也算是一个小小的技术难点,尤其时在asp.net中,上传的一些大小限制以及上传的进度的控制,以及用户体验等方面,今天在这里分享一个在asp.net mvc模式下的文件上传,同样适用于其它web类型bootstrap-fileinput . 它来自一个开源项目 git:https://github.com/kartik-v/bootstrap-fileinput/ 文档地址:http://plugins.krajee.com/file-input 用一个下午的时间将文

  • ASP.NET插件uploadify批量上传文件完整使用教程

    uploadify批量上传文件完整使用教程,供大家参考,具体内容如下 1.首先准备uploadify的js文件,网上一搜一大堆 2.上传页面UpFilePage.aspx 关键代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/h

  • .net core版 文件上传/ 支持批量上传拖拽及预览功能(bootstrap fileinput上传文件)

    上篇文章给大家介绍了MVC文件上传支持批量上传拖拽及预览文件内容校验功能 本篇内容主要解决.net core中文件上传的问题  开发环境:ubuntu+vscode 1.导入所需要的包:nuget install bootstrap-fileinput 注意:这里的导包需要在终端导入[需要在wwwroot文件夹下执行nuget命令]如下图 如果发现没有nuget命令,则需要通过apt-get 或者yum 给系统安装nuge包管理工具,这个nuget和vscode中的插件不是一回事 2前台页面编写

  • TP3.2批量上传文件或图片 同名冲突问题的解决方法

    本文实例为大家分享了TP3.2批量上传文件或图片的具体代码,并解决了同名冲突问题,供大家参考,具体内容如下 1.html <form action="{:U('Upload/index')}" enctype="multipart/form-data" method="post" > <p><input type="file" id="file3" name="ID[

  • ecshop 批量上传(加入自定义属性)

    下面是实现批量上传(加入自定义属性)思路以及实现的过程. 1.加入属性 之所以只能上传特定的属性,应该是批量上传的固定属性都来自于一张表.esc_goods表. 所以我们想假如自己的属性,必须要在esc_goods中加入自己的属性.比如这次加入的字段加 规格: goods_guige 代码:sql语句:alter table ecs_goods add goods_guige varchar(255) not null after goods_desc; 2.页面修改 位置: admin/tem

  • Android ksoap调用webservice批量上传多张图片详解

    Android ksoap调用webservice批量上传多张图片详解 这几天一直在开发app,哎呀,什么都是第一接触,想想自己自学Java,然后自学Android,一直没有放弃,曾想放弃的,但是想到爸妈供我上学,不能在宿舍里面玩游戏,加入学校实验室,一天没课就来着里学习,当然这里也有志同道合的人,一起努力一起进步!虽然大学这几年都在努力的学习技术,也没有参加什么活动的,更别说找个女伴了!还是老老实实的敲代码,成功给我带来巨大的潜能,新技术总是吸引着我.自己做项目,哎呀!好像说偏题了,言归正传吧

随机推荐