PHP实例:使用PHPExcel导入Excel2003文档和Excel2007文档到MySQL数据库中

如果要使用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类库)

时间: 2024-10-02 18:17:37

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

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

使用sqoop将MySQL数据库中的数据导入Hbase 前提:安装好 sqoop.hbase. 下载jbdc驱动:mysql-connector-java-5.1.10.jar 将 mysql-connector-java-5.1.10.jar 拷贝到 /usr/lib/sqoop/lib/ 下 MySQL导入HBase命令: sqoop import --connect jdbc:mysql://10.10.97.116:3306/rsearch --table researchers --h

将 text 文件里的数据导入到 mysql 数据库中

如题,将 text 文件里的数据导入到 mysql 数据库中. 我自己具体的实现可以分为几种了: 1.写你擅长的程序设计语言 进行读写文件,然后连接数据库,进行写入: 2.在 mysql 里直接进行运行 sql 脚本语句,进行导入. 第一个现在就不再说了,简单. 现在就说说怎么直接将 .text 文件利用 sql 语句 进行导入. 1.首先在数据库中新建一个表(这里的表至少要和 你数据里的字段进行匹配,即一行存在的字段数): 2.运行sql脚本语句: 比如: 你的文件为 D:/field.txt

solr4从mysql数据库中导入数据

实际项目中,我们需要把已存在于数据库中的数据导入到solr索引库中,solr给我们提供了一个非常简便的方式DIH,下面我们以mysql数据为例. 1.进入你的core(如collection1),新建一个目录lib. 2.拷贝mysql-connector-java-5.1.14.jar到新建的lib目录中. 3.从solr的解压文件目录中找到“E:\solrbase\example-DIH\solr\db\conf”下的db-data-config.xml文件到你的core(如collecti

如何将Excel导入到Mysql数据库中

1.在mysql中建一张和Excel结构一样的表,或者修改excel信息,将excel的结构与mysql中table保持一致,包括字段名称. 2.利用mysql客户端工具navicat进行导入. 步骤: 1.在数据库中找到表,右键,点击“导入导出” 2.根据你要导入的文件类型,选择相关选项,然后下一步 3.选择excel文件存放位置,然后,选择里边的sheet页.我的excel中国sheet页名字是list.然后下一步 4.日期格式 自己配置.我要导入的文件中没有日期,故没有配置.然后点 下一步

solr6.6教程-从mysql数据库中导入数据(三)

整理多半天的solr6.6,终于算是把solr6.6中配置数据库弄出来了,网上的文章千篇一律,各说个的,没有一篇统一覆盖solr6.6版本配置的 帖子,本章节我会把配置的一些注意事项一一列举,由于时间原因,本片只介绍如何一次性导入数据,不附带增量导入,想看增量的同学可以在后面的文章中. 1,配置准备 本文的前提是你已经配置好了solr,并新创建了一个core,我们下面都会按照前一篇文章中的core_demo为基础开始 2,修改soreconfig.xml 在soreconfig.xml的<req

(solr系列:四)将mysql数据库中的数据导入到solr中

在前面的博文中,已完成了在tomcat中对solr的部署,为solr添加了一个自定义的core,并且引入了ik分词器. 那么该如何将本地的mysql的数据导入到solr中呢? 准备工作: 1.mysql数据源:myuser库中的user表(8条数据) /* Navicat MySQL Data Transfer Source Server         : localhost Source Server Version : 50521 Source Host           : local

用logstash2.2.2把mysql数据库中的数据导入到elasticsearch

1.解压logstash2.2.2后台,进入到etc目录下,创建logstash-simple.conf,添加如下配置,根据自己的环境修改 input { jdbc { jdbc_driver_library => "/usr/local/elasticsearch-2.2.1/mysqldriver/mysql-connector-java-5.1.30-bin.jar" jdbc_driver_class => "com.mysql.jdbc.Driver&q

将 excel文件数据导入MySQL数据库中

第一步:先将Excel文件另存为文本文件(制表符分割) 第二步:将生成的txt文件另存,并修改编码格式utf8; 第三步:将文件放到指定位置,或自己想要的位置: G:\city.txt 第四步:避免创建数据库及表出现中文乱码和查看编码方法: 1.创建数据库的时候:CREATE DATABASE `test` CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; 查询字符编码: show variables like'character%'; 将数据库修改

导入本地文本中的数据到MySQL数据库中

文本文件中的字段是用","分隔的,如: 3144242807,Wed Oct 16 22:44:28 CST 2013,30.536041,114.3680192443892271,Mon Apr 28 09:21:39 CST 2014,30.545344,114.365762122771615,Fri Sep 06 14:00:32 CST 2013,30.538091,114.3706052495361967,Wed Apr 30 07:20:53 CST 2014,30.516