php通过PHPExcel导入Excel表格到MySQL数据库

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

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

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

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

下面上实例代码:

<?php
$PHPExcel = new PHPExcel();// 实例化PHPExcel工具类
        //分析文件获取后缀判断是2007版本还是2003
        $extend = pathinfo("./" . $_POST['files']);
        $extend = strtolower($extend["extension"]); 
        // 判断xlsx版本,如果是xlsx的就是2007版本的,否则就是2003
        if ($extend=="xlsx") {
            $PHPReader = new PHPExcel_Reader_Excel2007();
            $PHPExcel = $PHPReader->load("./" . $_POST['files']);
        }else{
            $PHPReader = new PHPExcel_Reader_Excel5();
            $PHPExcel = $PHPReader->load("./" . $_POST['files']);
        }
        // 获取哪一页的数据,0就是第一页
        $currentSheet = $PHPExcel->getSheet(0);
        // 获取行数
        $allColumn = $currentSheet->getHighestColumn();
        // 获取列数
        $allRow = $currentSheet->getHighestRow();
        $arr = array();
        //遍历获取数据装到$arr数组中
        for ($currentRow = 2; $currentRow <= $allRow; $currentRow++) {
            $arrs = (str_split($allColumn));
            if (strlen($allColumn) >= 2) {
                foreach (range('A', 'Z') as $letter) {
                    $address = $letter . $currentRow;
                    $arr[$currentRow][] = $currentSheet->getCell($address)->getFormattedValue();
                }
                for ($s1 = $arrs[0]; $s1 <= $arrs[1]; $s1++) {
                    $address = $arrs[0] . $s1 . $currentRow;
                    $arr[$currentRow][] = $currentSheet->getCell($address)->getFormattedValue();
                }
            } else {
                //遍历获取数据存到数组,从A列开始获取到AB列
                for ($currentColumn = 'A'; $currentColumn <= "AB"; $currentColumn++) {
                    $address = $currentColumn . $currentRow;
                    $arr[$currentRow][] = $currentSheet->getCell($address)->getFormattedValue();
                }
            }
        }

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

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

qun.png