博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHPExcel读取excel文件
阅读量:5220 次
发布时间:2019-06-14

本文共 2023 字,大约阅读时间需要 6 分钟。

PHPExcel是个很强大的类库,以前只使用过它生成Excel文件,非常方便。

今天接到个项目要读取Excel的文件,以前也做过Excel转换写入数据库的工作, 
不过相对简单一些,是转换成CSV格式再进行解析的。
首先下载PHPExcel类库。
包含PHPExcel类库文件,如果不能确定文件类型的话可以使用PHPExcel_IOFactory::identify方法返回文件的类型,传递给该函数一个文件名就可以。
然后根据返回的文件类型创建该类型的读取对象,进行文件的load。
之后就可以进行数据的读取了,
具体代码如下所示:

    1. <?php
    2.     require_once('include/common.inc.php');
    3.     require_once(ROOTPATH . 'include/phpExcel/PHPExcel/IOFactory.php');
    4.     
    5.     $filePath = './file/xls/110713.xls'; 
    6.     
    7.     $fileType = PHPExcel_IOFactory::identify($filePath); //文件名自动判断文件类型
    8.     $objReader = PHPExcel_IOFactory::createReader($fileType);
    9.     $objPHPExcel = $objReader->load($filePath);
    10.     
    11.     $currentSheet = $objPHPExcel->getSheet(0); //第一个工作簿
    12.     $allRow = $currentSheet->getHighestRow(); //行数
    13.     $output = array();
    14.     $preType = '';
    15.     
    16.     $qh = $currentSheet->getCell('A4')->getValue();
    17.     //按照文件格式从第7行开始循环读取数据
    18.     for($currentRow = 7;$currentRow<=$allRow;$currentRow++){
       
    19.         //判断每一行的B列是否为有效的序号,如果为空或者小于之前的序号则结束
    20.         $xh = (int)$currentSheet->getCell('B'.$currentRow)->getValue();
    21.         if(empty($xh))break;
    22.         
    23.         $tmpType = (string)$currentSheet->getCell('C'.$currentRow)->getValue(); //赛事类型
    24.         if(!empty($tmpType))$preType = $tmpType;
    25.         $output[$xh]['type'] = $preType;
    26.         $output[$xh]['master'] = $currentSheet->getCell('F'.$currentRow)->getValue(); //主队
    27.         $output[$xh]['guest'] = $currentSheet->getCell('H'.$currentRow)->getValue(); //客队    
    28.     }
    29.     
    30.     //从当前行开始往下循环,取出第一个不为空的行
    31.     for( ; ; $currentRow++){
    32.         $xh = (int)$currentSheet->getCell('B'.$currentRow)->getValue();
    33.         if(!empty($xh))break;
    34.     }
    35.     
    36.     for( ; $currentRow <= $allRow; $currentRow++){
    37.         $xh = (int)$currentSheet->getCell('B'.$currentRow)->getValue();
    38.         if(empty($xh))break;
    39.         
    40.         $output[$xh]['rq'] = $currentSheet->getCell('I'.$currentRow)->getValue();
    41.     }
    42.     header("content-type:text/html; charset=utf-8");
    43.     
    44.     echo '期号:' . $qh . "\n\n";
    45.     if(!empty($output)){
    46.         printf("%-5s\t%-15s\t%-40s\t%-40s\t%-5s\n", '序号', '赛事类型', '主队', '客队', '让球值');
    47.         foreach($output as $key => $row){
    48.             $format = "%-5d\t%-15s\t%-40s\t%-40s\t%-5s\n";
    49.             printf($format, $key, $row['type'], $row['master'], $row['guest'], $row['rq']);
    50.         }
    51.     }
    52. ?>

转载于:https://www.cnblogs.com/wgx214/p/3709521.html

你可能感兴趣的文章
dwr+spring
查看>>
关于SQL 多表关联update 解决示例
查看>>
学习中遇到的问题
查看>>
CALayer CABasicAnimation 组动画的设置,设置动画不回到初始位置
查看>>
Python学习day6(小数据池、代码块)
查看>>
原生ES-Module在浏览器中的尝试
查看>>
创建视图
查看>>
Spark 核心概念RDD
查看>>
codeforce 600A - Extract Numbers
查看>>
深入浅出Spring(三) AOP详解
查看>>
[原]Java修炼 之 基础篇(一)Java语言特性
查看>>
mysql 数据库导入导出方法
查看>>
Windows下的apache maven安装与配置
查看>>
idea导入Spring源码
查看>>
python多线程
查看>>
mongo
查看>>
取得类的 对象属性名 和类的属性 和类的方法名
查看>>
Spring报错——Scope 'session' is not active for the current thread
查看>>
C++学习笔记(三)之函数库
查看>>
[Android]2013.5.4日志
查看>>