PHPExcel实现的读取多工作表操作示例
发布:smiling 来源: PHP粉丝网 添加日期:2022-02-27 10:28:04 浏览: 评论:0
本文实例讲述了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截图如下:
打印结果如下: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的数据;
Tags: PHPExcel读取多工作表
- 上一篇:PHP 对象接口简单实现方法示例
- 下一篇:最后一页
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)