主要有兩個選擇,第一個是PHPExcelReader,另外一個是PHPExcel。
PHPExcelReader比較輕量級,只支援Excel的讀取,其實就是一個Reader。 但可惜的是不能夠支援Excel 2007的格式(.xlsx)。
PHPExcel比較強大,能夠將記憶體中的資料輸出成Excel文件,同時也能夠對Excel做各種操作,以下主要介紹如何使用PHPExcel進行Excel 2007格式(.xlsx)檔案的讀取。 (推薦學習:PHP影片教學)
下載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。
要注意的是,對於Excel中的日期格式,PHPExcel讀出來的是不是日期類型,需要我們使用以下方法來進行日期類型轉換。
echo date("Y-m-d H:i:s",PHPExcel_Shared_Date::ExcelToPHP($date));
下面的程式碼顯示如何遍歷顯示Excel的內容:
<table id="table_id"> <?php $objWorksheet = $objPHPExcel->getActiveSheet(); $i = 0; foreach($objWorksheet->getRowIterator() as $row){ ?> <tr> <?php $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false); if( $i == 0 ){ echo '<thead>'; } foreach($cellIterator as $cell){ echo '<td>' . $cell->getValue() . '</td>'; } if( $i == 0 ){ echo '</thead>'; } $i++; ?> </tr> <?php } ?> </table>
以上是php怎麼讀xls文件的詳細內容。更多資訊請關注PHP中文網其他相關文章!