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

最新文章

  1. OAF通过Iterator标准遍历各行
  2. Start Instance 操作详解 - 每天5分钟玩转 OpenStack(31)
  3. 函数图象(N=x+y*i)
  4. javaWeb中 servlet 、request 、response
  5. uboot中添加FIQ中断及相关问题
  6. django model 中class meta
  7. linux安装sqlcmd登录sqlserver
  8. 嵌入式 Linux下修改MAC地址
  9. UVALive 7454 Parentheses (栈+模拟)
  10. HDU 2275 multiset
  11. C#算法基础之堆排序
  12. 好的 ASP.Net网站、博客
  13. jQuery Ajax 实例 ($.ajax、$.post、$.get)【转载】
  14. Hadoop集群运行JNI程序
  15. 关于127.0.0.1与localhost
  16. Ionic3 启动非常慢
  17. 第五篇、Python之迭代器与生成器
  18. zeromq学习笔记2——简单的客户端和服务端测试程序
  19. AFNetworking 3.0 AFHTTPSessionManager文件下载
  20. 【Android】ADB常用指令与logcat日志

热门文章

  1. 一个有关Golang变量作用域的坑
  2. SpringMvc之参数绑定注解详解之二
  3. 使用 EntityFramework后把一个对象序列化成json字符串引起循环引用的问题
  4. HBase 二级索引与Coprocessor协处理器
  5. [hdu4372]counting buildings
  6. 22、IDP-ASE
  7. hdu1052
  8. Java Script 学习笔记 -- Ajax
  9. [C++]C,C++中使用可变参数
  10. 通过增删改查对比Array,Map,Set,Object的使用成本和实现方式