PHP讀取Excel文件內容

項目須要讀取Excel的內容,從百度搜索了下,主要有兩個選擇,第一個是PHPExcelReader,另一個是PHPExcel。php

 
PHPExcelReader比較輕量級,僅支持Excel的讀取,實際上就是一個Reader。可是惋惜的是不可以支持Excel 2007的格式(.xlsx)。
 
PHPExcel比較強大,可以將內存中的數據輸出成Excel文件,同時還可以對Excel作各類操做,下面主要介紹下如何使用PHPExcel進行Excel 2007格式(.xlsx)文件的讀取。
 
下載PHPExcel後保存到本身的類文件目錄中,而後使用如下代碼能夠打開Excel 2007(xlsx)格式的文件:
 
require_once '/libs/PHPExcel-1.8.0/Classes/PHPExcel.php';     //修改成本身的目錄
echo '<p>TEST PHPExcel 1.8.0: read xlsx file</p>';
$objReader = PHPExcel_IOFactory::createReaderForFile($filename); 
$objPHPExcel = $objReader->load($filename);
$objPHPExcel->setActiveSheetIndex(1);
$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>

 

 
參考資料: