PHPExcel讀取excel文件示例

PHPExcel讀取excel文件示例
PHPExcel最新版官方下載網址:http://phpexcel.codeplex.com/
PHPExcel是一個很是方便生成Excel格式文件的類,官方下載包中帶有大量如何生成各類樣式excel文件的示例,但沒有一個讀取Excel文件的完整例子,下面是讀取的例子:
讀取Excel的內容主要有兩個選擇:PHPExcelReader、PHPExcel。
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();php

輸出$date變量就可以看到文件中的內容了。PHPExcel使用PHPExcel_IOFactory這個類來自動匹配所上傳的文件類型,固然咱們也能夠本身制定要解析的文件類型。
以後經過load方法,將PHP文件加載到objPHPExcel對象中。若是Excel文件有多個Sheet,能夠經過setActiveSheetIndex來設置當前活動的Sheet。post

須要注意的是,對於Excel中的日期格式,PHPExcel讀出來的是否是日期類型,須要咱們使用如下方法來進行日期類型轉換。
echo date("Y-m-d H:i:s",PHPExcel_Shared_Date::ExcelToPHP($date));ui

下面的代碼顯示瞭如何遍歷顯示Excel的內容:
<table>
<?php
$objWorksheet = $objPHPExcel->getActiveSheet();
$i = 0;
foreach($objWorksheet->getRowIterator() as $row){
?>
<tr>
<?php
$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);excel

if( $i == 0 ){
echo '<thead>';
}
foreach($cellIterator as $cell){code

echo '<td>' . $cell->getValue() . '</td>';對象

}
if( $i == 0 ){
echo '</thead>';
}
$i++;
?>
</tr>
<?php
}
?>
</table>
=================================================blog

傳統方法:
<?php
require_once '../Classes/PHPExcel/IOFactory.php';
// Check prerequisites
if (!file_exists("test.xls")) {
exit("not found test.xls.\n");
}
$reader = PHPExcel_IOFactory::createReader('Excel5'); //設置以Excel5格式(Excel97-2003工做簿)
$PHPExcel = $reader->load("test.xls"); // 載入excel文件
$sheet = $PHPExcel->getSheet(0); // 讀取第一個工做表
$highestRow = $sheet->getHighestRow(); // 取得總行數
$highestColumm = $sheet->getHighestColumn(); // 取得總列數
$highestColumm= PHPExcel_Cell::columnIndexFromString($colsNum); //字母列轉換爲數字列 如:AA變爲27

/** 循環讀取每一個單元格的數據 */
for ($row = 1; $row <= $highestRow; $row++){//行數是以第1行開始
for ($column = 0; $column < $highestColumm; $column++) {//列數是以第0列開始
$columnName = PHPExcel_Cell::stringFromColumnIndex($column);
echo $columnName.$row.":".$sheet->getCellByColumnAndRow($column, $row)->getValue()."<br />";
}
}
?>內存

精簡方法:
<?php
require_once '../Classes/PHPExcel/IOFactory.php';
// Check prerequisites
if (!file_exists("test.xls")) {
exit("not found test.xls.\n");
}
$reader = PHPExcel_IOFactory::createReader('Excel5'); //設置以Excel5格式(Excel97-2003工做簿)
$PHPExcel = $reader->load("test.xls"); // 載入excel文件
$sheet = $PHPExcel->getSheet(0); // 讀取第一個工做表
$highestRow = $sheet->getHighestRow(); // 取得總行數
$highestColumm = $sheet->getHighestColumn(); // 取得總列數

/** 循環讀取每一個單元格的數據 */
for ($row = 1; $row <= $highestRow; $row++){//行數是以第1行開始
for ($column = 'A'; $column <= $highestColumm; $column++) {//列數是以A列開始
$dataset[] = $sheet->getCell($column.$row)->getValue();
echo $column.$row.":".$sheet->getCell($column.$row)->getValue()."<br />";
}
}
?>get

相關文章
相關標籤/搜索