如果要使用phpExcelReader将Excel 数据导入到mysql 数据库,请读者点击这个文章查看。

使用phpExcelReader将Excel 数据导入到mysql 数据库

下面我们介绍另一种方法来实现导入Excel到MySQL数据库。

1、到官网http://phpexcel.codeplex.com/下载PHPExcel类库,我目前使用的是1.7.9版本。如图:

2、直接上代码。

(1)、conn.php文件(这个不用介绍,你懂得):

PHP Code复制内容到剪贴板
  1. $mysql=mysql_connect("localhost","root","root");
  2. mysql_select_db("test",$mysql);
  3. mysql_query("set names GBK");

(2)、HTML页面部分:index.php文件(表单提交页面):

XML/HTML Code复制内容到剪贴板
  1. <form name="form2" method="post" enctype="multipart/form- data" action="upload_excel.php">
  2. <input type="hidden" name="leadExcel" value="true">
  3. <table align="center" width="90% " border="0">
  4. <tr>
  5. <td>
  6. <input type="file" name="inputExcel"><input type="submit" name="import" value="导入数据 ">
  7. </td>
  8. </tr>
  9. </table>
  10. </form>

(3)、表单处理处理程序部分:upload_excel.php文件:

PHP Code复制内容到剪贴板
  1. include("conn.php");
  2. include("function.php");
  3. if($_POST ['import']=="导入数据 "){
  4. $leadExcel=$_POST['leadExcel'];
  5. if($leadExcel == "true")
  6. {
  7. //echo "OK";die();
  8. //获取上传的文件名
  9. $filename = $HTTP_POST_FILES['inputExcel'] ['name'];
  10. //上传到服务器上的临时文件名
  11. $tmp_name = $_FILES ['inputExcel']['tmp_name'];
  12. $msg = uploadFile($filename,$tmp_name);
  13. echo $msg;
  14. }
  15. }

(4)、函数部分:function.php文件:

PHP Code复制内容到剪贴板
  1. //导入Excel文件
  2. function uploadFile($file,$filetempname)
  3. {
  4. //自己设置的上传文件存放路径
  5. $filePath = 'upFile/';
  6. $str = "";
  7. //下面的路径按照你 PHPExcel的路径来修改
  8. set_include_path('.'. PATH_SEPARATOR .'E:\php\AppServ\www\91ctcStudy\PHPExcelImportSQl2 \PHPExcel' . PATH_SEPARATOR .get_include_path());
  9. require_once 'PHPExcel.php';
  10. require_once 'PHPExcel\IOFactory.php';
  11. //require_once 'PHPExcel\Reader\Excel5.php';//excel 2003
  12. require_once 'PHPExcel\Reader\Excel2007.php';//excel 2007
  13. $filename=explode(".",$file);//把上传的文件名以“.”好为准做一个数组。
  14. $time=date("y-m-d-H-i- s");//去当前上传的时间
  15. $filename [0]=$time;//取文件名t替换
  16. $name=implode (".",$filename); //上传后的文件名
  17. $uploadfile=$filePath.$name;//上传后的文件名地址
  18. //move_uploaded_file() 函数 将上传的文件移动到新位置。若成功,则返回 true,否则返回 false。
  19. $result=move_uploaded_file($filetempname,$uploadfile);//假如上传到当前目录下
  20. if($result) //如果上传文件成功,就执行导入 excel操作
  21. {
  22. // $objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2003
  23. $objReader = PHPExcel_IOFactory::createReader('Excel2007');//use excel2003 和  2007 format
  24. // $objPHPExcel = $objReader->load($uploadfile); //这个容易造成httpd崩溃
  25. $objPHPExcel = PHPExcel_IOFactory::load($uploadfile);//改成这个写法就好了
  26. $sheet = $objPHPExcel- >getSheet(0);
  27. $highestRow = $sheet- >getHighestRow(); // 取得总行数
  28. $highestColumn = $sheet- >getHighestColumn(); // 取得总列数
  29. //循环读取excel文件,读取一条,插入一条
  30. for($j=2;$j<=$highestRow;$j++)
  31. {
  32. for($k='A';$k<=$highestColumn;$k++)
  33. {
  34. $str .= iconv('utf-8','gbk',$objPHPExcel->getActiveSheet()->getCell("$k$j")->getValue()).'\\';//读 取单元格
  35. }
  36. //explode:函 数把字符串分割为数组。
  37. $strs =& nbsp;explode("\\",$str);
  38. //var_dump ($strs);
  39. //die();
  40. $sql =&n bsp;"INSERT INTO z_test_importexcel(duty_date,name_am,name_pm) VALUES ('".$strs[0]."','".$strs[1]."','".$strs[2]."')";
  41. //echo $ sql;
  42. mysql_query ("set names GBK");//这就是指定数据库字 符集,一般放在连接数据库后面就系了
  43. if(! mysql_query($sql)){
  44. & nbsp; return false;
  45. }
  46. $str =&n bsp;"";
  47. }
  48. unlink ($uploadfile); //删除上传的excel文件
  49. $msg = "导入成 功!";
  50. }else{
  51. $msg = "导入失 败!";
  52. }
  53. return $msg;
  54. }

关于这个函数,参考了http://blog.csdn.net/grassroots20 11/article/details/8104604该博友的文章,但是,该博友的写法,我认为有问题,至少 ,我用的

$objPHPExcel = $objReader->load ($uploadfile);

这一句写法,在运行的时候,会出现:

或者是PHPExcel类库官方后来升级了,调用方法需要改正一下吧,具体笔者就没考究了。

3、通过上面的几个步骤,读者再分别准备一个xls和xlsx文档就可以了,系统运行效果:

附件下载:完整DEMO下载(已含PHPExcel类库)附件下载:完整DEMO下载(已含PHPExcel类库)

PHP实例:使用PHPExcel导入Excel2003文档和Excel2007文档到MySQL数据库中的更多相关文章

  1. JDBC Java 程序从 MySQL 数据库中读取数据,并备份到 xml 文档中

    MySQL 版本:Server version: 5.7.17-log MySQL Community Server (GPL) 相关内容:JDBC Java 程序从 MySQL 数据库中读取数据,并 ...

  2. 从Mysql数据库中导入导出表结构

    1.从Mysql数据库中导入sql表 很简单,只需要一个命令即可搞定:[root@localhost ~]# mysql -uroot -piweb_xxx_mysql iweb < modif ...

  3. Access数据库导入到mysql数据库中

    做项目时需要查询手机号归属地的,用网上提供的接口,耗时太长,反应慢,只能自己在网上搜了一个包含所有手机号归属地的Access数据库,导入到自己的mysql数据库中 Access数据库导入到mysql中 ...

  4. 用JDBC把Excel中的数据导入到Mysql数据库中

    步骤:0.在Mysql数据库中先建好table 1.从Excel表格读数据 2.用JDBC连接Mysql数据库 3.把读出的数据导入到Mysql数据库的相应表中 其中,步骤0的table我是先在Mys ...

  5. 使用sqoop将MySQL数据库中的数据导入Hbase

    使用sqoop将MySQL数据库中的数据导入Hbase 前提:安装好 sqoop.hbase. 下载jbdc驱动:mysql-connector-java-5.1.10.jar 将 mysql-con ...

  6. python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图

    python制作简单excel统计报表3之将mysql数据库中的数据导入excel模板并生成统计图 # coding=utf-8 from openpyxl import load_workbook ...

  7. 利用POI工具读取word文档并将数据存储到sqlserver数据库中

    今天实现了利用POI工具读取word文档,并将数据存储到sql数据库中,代码如下: package word; import java.io.File; import java.io.FileInpu ...

  8. Solr 07 - Solr从MySQL数据库中导入数据 (Solr DIH的使用示例)

    目录 1 加入数据导入处理器的jar包 2 加入数据库驱动包 3 配置solrconfig.xml文件 3.1 配置lib标签 - 加入驱动jar包 3.2 配置requestHandler标签 - ...

  9. 如何用java POI将word中的内容导入到mysql数据库中

    由于作业需要,要求我们将word文档中的数据直接导入到mysql中,在网上找了很常时间,终于将其解决. 由于比较初级,所以处理的word文档是那种比较规范的那种,条例比较清晰,设计的思路也比较简单,就 ...

随机推荐

  1. java web基础知识

    1)TCP三次握手 第一次握手:客户端A将标志位SYN置为1,随机产生一个值为seq=J(J的取值范围为=1234567)的数据包到服务器,客户端A进入SYN_SENT状态,等待服务端B确认: 第二次 ...

  2. JavaScript继承与聚合

    一,继承 第一种方式:类与被继承类直接耦合度高 1,首先,准备一个可以被继承的类(父类),例如 //创建一个人员类 function Person(name) {//现在Person里面的域是由Per ...

  3. SQL 时间及字符串操作

    都是一些很基础很常用的,在这里记录一下 获取年月日: year(时间) ---获取年,2014 month(时间) ----获取月,5 day(时间) -----获取天,6 如果月份或日期不足两位数, ...

  4. ubunt14.04搭建lNMP

    一.安装mysql 1.  sudo apt-get update 2.  sudo apt-get install apt-get nginx 二.安装mysql 1.  sudo apt-get ...

  5. Jmeter JDBC Request的sql语句不支持;号

    Jmeter JDBC Request的sql语句不支持:号,如果要批量插入数据,则需要使用以下方式 INSERT INTO bank_info( `id`, `bank_code`, `bank_n ...

  6. spider(一)

    此爬虫内容无架构: 1.URL管理器:用集合,mysql表,缓存等 2.网页下载器:实现网页下载, urllib2:官方基础模块 requests:三方的(更强):伪装成浏览器访问,代理登录,http ...

  7. Umbraco遇到的问题解决

    在本地VS2015运行公司的Corporate website时,有几个页面出现错误如下: 但事实是那个,这几个View都是存在的.弄了半天也没有能够解决.后来看到这个blog: https://ou ...

  8. laravel 导出插件

    转发:https://blog.csdn.net/gu_wen_jie/article/details/79296470 版本:laravel5 php 5.6 安装步骤: 一.安装插件 ①.首先在L ...

  9. 强联通分量之kosaraju算法

    首先定义:强联通分量是有向图G=(V, E)的最大结点集合,满足该集合中的任意一对结点v和u,路径vu和uv同时存在. kosaraju算法用来寻找强联通分量.对于图G,它首先随便找个结点dfs,求出 ...

  10. 洛谷P2911 [USACO08OCT]牛骨头Bovine Bones【水题】

    题目大意:输入S1,S2,S3,随机生成三个数x,y,z,求x+y+z出现次数最多的数(如果有多个答案输出最小的),其中1<=x<=S1,1<=y<=S2,1<=z< ...