phHPEcelExlMySQL

时间: 2015-02-18 20:56 栏目: PHP 浏览: 10721 赞: 2 踩: 1 字体:

以下为本篇文章全部内容:

前几天给大家介绍了,怎么把通过php把数据库的内容导出到Excel生成表格,但是这远远不够符合大家开发当中遇到的问题,既然有导出那么就会有导入,我们这次导入跟上次导出用到的是同一个类。也是PHPExcel,当然这个类还有很多其他强大的功能,我介绍的只是一个小部分而已。更加强大的功能大家就得自己发掘。

工具类的下载地址:http://phpexcel.codeplex.com/

下面上实例代码:

  1. <?php
  2. $PHPExcel = new PHPExcel();// 实例化PHPExcel工具类
  3.         //分析文件获取后缀判断是2007版本还是2003
  4.         $extend = pathinfo("./. $_POST['files']);
  5.         $extend = strtolower($extend["extension"]); 
  6.         // 判断xlsx版本,如果是xlsx的就是2007版本的,否则就是2003
  7.         if ($extend=="xlsx") {
  8.             $PHPReader = new PHPExcel_Reader_Excel2007();
  9.             $PHPExcel = $PHPReader->load("./" . $_POST['files']);
  10.         }else{
  11.             $PHPReader = new PHPExcel_Reader_Excel5();
  12.             $PHPExcel = $PHPReader->load("./" . $_POST['files']);
  13.         }
  14.         // 获取哪一页的数据,0就是第一页
  15.         $currentSheet = $PHPExcel->getSheet(0);
  16.         // 获取行数
  17.         $allColumn = $currentSheet->getHighestColumn();
  18.         // 获取列数
  19.         $allRow = $currentSheet->getHighestRow();
  20.         $arr = array();
  21.         //遍历获取数据装到$arr数组中
  22.         for ($currentRow = 2; $currentRow <= $allRow; $currentRow++) {
  23.             $arrs = (str_split($allColumn));
  24.             if (strlen($allColumn) >= 2) {
  25.                 foreach (range('A', 'Z') as $letter) {
  26.                     $address = $letter . $currentRow;
  27.                     $arr[$currentRow][] = $currentSheet->getCell($address)->getFormattedValue();
  28.                 }
  29.                 for ($s1 = $arrs[0]; $s1 <= $arrs[1]; $s1++) {
  30.                     $address = $arrs[0. $s1 . $currentRow;
  31.                     $arr[$currentRow][] = $currentSheet->getCell($address)->getFormattedValue();
  32.                 }
  33.             } else {
  34.                 //遍历获取数据存到数组,从A列开始获取到AB列
  35.                 for ($currentColumn = 'A'; $currentColumn <= "AB"; $currentColumn++) {
  36.                     $address = $currentColumn . $currentRow;
  37.                     $arr[$currentRow][] = $currentSheet->getCell($address)->getFormattedValue();
  38.                 }
  39.             }
  40.         }

上面已经可以把表格的数据存到数组里面了,然后数组各位只需要遍历就可以处理了,使用框架的可以循环单独写入也行,要求效率的可以循环拼接成一条sql语句直接执行,如何写入数据库就不用我说了吧,各位都懂的。

如果大家有什么疑问可以加我QQ327388905进行解答,或者拿起您的手机,打开扫一扫

qun.png