温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHPExcel如何实现的读取多工作表

发布时间:2021-03-08 17:15:32 来源:亿速云 阅读:206 作者:TREX 栏目:开发技术

这篇文章主要讲解了“PHPExcel如何实现的读取多工作表”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHPExcel如何实现的读取多工作表”吧!

最近我们公司crm模块需要优化一下客户导入功能,之前的要求是:只需要从单个工作表中获取数据;现在的要求是:需要在多个工作表中获取对应数据,并导入数据库;

幸亏PHPExcel已经给我们提供了获取多个sheet工作表的方法。下面直接上代码:【这里我用的是tp3.2.3】

/**  * 导入excel文件  * @param string $file excel文件路径  * @return array    excel文件内容数组  */ function import_excel($file){   // 判断文件是什么格式   $type = pathinfo($file);    $type = strtolower($type["extension"]);   if ($type=='xlsx') {      $type='Excel2007';    }elseif($type=='xls') {      $type = 'Excel5';    }    ini_set('max_execution_time', '0');   Vendor('PHPExcel.PHPExcel');   $objReader = PHPExcel_IOFactory::createReader($type);//判断使用哪种格式   $objReader ->setReadDataOnly(true); //只读取数据,会智能忽略所有空白行,这点很重要!!!   $objPHPExcel = $objReader->load($file); //加载Excel文件   $sheetCount = $objPHPExcel->getSheetCount();//获取sheet工作表总个数   $rowData = array();   $RowNum = 0;   /*读取表格数据*/   for($i =0;$i <= $sheetCount-1;$i++){//循环sheet工作表的总个数     $sheet = $objPHPExcel->getSheet($i);     $highestRow = $sheet->getHighestRow();     $RowNum += $highestRow-1;//计算所有sheet的总行数     $highestColumn = $sheet->getHighestColumn();     //从第$i个sheet的第1行开始获取数据     for($row = 1;$row <= $highestRow;$row++){       //把每个sheet作为一个新的数组元素 键名以sheet的索引命名 利于后期数组的提取       $rowData[$i][] = arrToOne($sheet->rangeToArray('A' . $row . ':' . $highestColumn . $row, NULL, TRUE, FALSE));     }   }   /*删除每行表头数据*/   foreach($rowData as $k=>$v){     array_shift($rowData[$k]);   }   echo '<pre>';   print_r($rowData);//打印结果   echo '</pre>';   return array("RowNum" => $RowNum,"Excel_Data" => $rowData); }

Excel截图如下:

PHPExcel如何实现的读取多工作表

打印结果如下:0对应第一个sheet;以此类推第3个就是最后一个sheet;

注意:当某一个sheet不存在任何数据时,我这里会创建该元素为空数组,比如下面结果的第3个元素 ;所以在插入数据库操作的时候需要再判断一下是否为空!

<pre>Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => 测试数据001
                    [1] =>
                    [2] => 联系人1
                    [3] => 女
                    [4] =>
                    [5] =>
                    [6] =>
                    [7] =>
                    [8] =>
                    [9] =>
                    [10] =>
                    [11] =>
                    [12] =>
                )
 
            [1] => Array
                (
                    [0] => 测试数据002
                    [1] =>
                    [2] => 联系人2
                    [3] => 女
                    [4] =>
                    [5] =>
                    [6] =>
                    [7] =>
                    [8] =>
                    [9] =>
                    [10] =>
                    [11] =>
                    [12] =>
                )
 
        )
 
    [1] => Array
        (
            [0] => Array
                (
                    [0] => 测试数据014
                    [1] =>
                    [2] => 联系人13
                    [3] => 女
                    [4] =>
                    [5] =>
                    [6] =>
                    [7] =>
                    [8] =>
                    [9] =>
                    [10] =>
                    [11] =>
                    [12] =>
                )
 
        )
 
    [2] => Array
        (
            [0] => Array
                (
                    [0] => 测试数据015
                    [1] =>
                    [2] => 联系人13
                    [3] => 女
                    [4] =>
                    [5] =>
                    [6] =>
                    [7] =>
                    [8] =>
                    [9] =>
                    [10] =>
                    [11] =>
                    [12] =>
                )
 
        )
 
    [3] => Array
        (
        )
 
)
</pre>

至此, 以上就成功获取到了每一个sheet的数据;

感谢各位的阅读,以上就是“PHPExcel如何实现的读取多工作表”的内容了,经过本文的学习后,相信大家对PHPExcel如何实现的读取多工作表这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI