zoukankan      html  css  js  c++  java
  • PHP读取excel文档

    PHP读取excel文档

    项目需要读取Excel的内容,从百度搜索了下,主要有两个选择,第一个是PHPExcelReader,另外一个是PHPExcel。

     
    PHPExcelReader比较轻量级,仅支持Excel的读取,实际上就是一个Reader。但是可惜的是不能够支持Excel 2007的格式(.xlsx)。
     
    PHPExcel比较强大,能够将内存中的数据输出成Excel文件,同时还能够对Excel做各种操作,下面主要介绍下如何使用PHPExcel进行Excel 2007格式(.xlsx)文件的读取。
     
    下载PHPExcel后保存到自己的类文件目录中,然后使用以下代码可以打开Excel 2007(xlsx)格式的文件:
     
    1,require_once '/libs/PHPExcel-1.8.0/Classes/PHPExcel.php';     //修改为自己的目录
    2,echo '<p>TEST PHPExcel 1.8.0: read xlsx file</p>';
    3,$objReader=PHPExcel_IOFactory::createReaderForFile($filename);
    4,$objPHPExcel = $objReader->load($filename);
    5,$objPHPExcel->setActiveSheetIndex(1);
    6,$date = $objPHPExcel->getActiveSheet()->getCell('A16')->getValue();
      

      

    输出$date变量就能够看到文件中的内容了。PHPExcel使用PHPExcel_IOFactory这个类来自动匹配所上传的文件类型,当然我们也可以自己制定要解析的文件类型。之后通过load方法,将PHP文件加载到objPHPExcel对象中。如果Excel文件有多个Sheet,可以通过setActiveSheetIndex来设置当前活动的Sheet。如何通过Sheet名来获得当前Sheet我还不知道,如果有知道的可以站内我。
     
    需要注意的是,对于Excel中的日期格式,PHPExcel读出来的是不是日期类型,需要我们使用以下方法来进行日期类型转换。
     
     
    下面的代码显示了如何遍历显示Excel的内容:
     1 <table id="table_id">
     2 <?php
     3      $objWorksheet = $objPHPExcel->getActiveSheet();
     4      $i = 0;
     5      foreach($objWorksheet->getRowIterator() as $row){
     6      ?>
     7           <tr>
     8           <?php
     9                $cellIterator = $row->getCellIterator();
    10                $cellIterator->setIterateOnlyExistingCells(false);
    11 
    12                     if( $i == 0 ){
    13                          echo '<thead>';
    14                     }
    15                foreach($cellIterator as $cell){
    16 
    17                     echo '<td>' . $cell->getValue() . '</td>';
    18 
    19                }
    20                     if( $i == 0 ){
    21                          echo '</thead>';
    22                     }
    23                $i++;
    24           ?>
    25           </tr>
    26      <?php
    27      }
    28 ?>
    29 </table>
    复制代码
     
    该文转载:
    http://www.cnblogs.com/cocowool/p/4025852.html
     
  • 相关阅读:
    VMWare 桥接模式
    什么是交叉编译,为什么要使用交叉编译
    最常用的四种大数据分析方法
    C#的Dispose模式复习
    Oracle Data Provider for .NET Support for Microsoft .NET Core
    微软发布了量子计算开发包
    关于Oracle分区表的理解
    html 中video标签视频不自动播放的问题
    input 修改placeholder颜色
    正则表达式 手机号验证、邮箱验证、6~16位数字加字母组合、身份证号码验证
  • 原文地址:https://www.cnblogs.com/wanlibingfeng/p/5528083.html
Copyright © 2011-2022 走看看