New file |
0,0 → 1,227 |
<?php |
/** |
* PHPExcel |
* |
* Copyright (c) 2006 - 2013 PHPExcel |
* |
* This library is free software; you can redistribute it and/or |
* modify it under the terms of the GNU Lesser General Public |
* License as published by the Free Software Foundation; either |
* version 2.1 of the License, or (at your option) any later version. |
* |
* This library is distributed in the hope that it will be useful, |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
* Lesser General Public License for more details. |
* |
* You should have received a copy of the GNU Lesser General Public |
* License along with this library; if not, write to the Free Software |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
* |
* @category PHPExcel |
* @package PHPExcel_Reader |
* @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) |
* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL |
* @version ##VERSION##, ##DATE## |
*/ |
|
|
/** |
* PHPExcel_Reader_Abstract |
* |
* @category PHPExcel |
* @package PHPExcel_Reader |
* @copyright Copyright (c) 2006 - 2013 PHPExcel (http://www.codeplex.com/PHPExcel) |
*/ |
abstract class PHPExcel_Reader_Abstract implements PHPExcel_Reader_IReader |
{ |
/** |
* Read data only? |
* Identifies whether the Reader should only read data values for cells, and ignore any formatting information; |
* or whether it should read both data and formatting |
* |
* @var boolean |
*/ |
protected $_readDataOnly = FALSE; |
|
/** |
* Read charts that are defined in the workbook? |
* Identifies whether the Reader should read the definitions for any charts that exist in the workbook; |
* |
* @var boolean |
*/ |
protected $_includeCharts = FALSE; |
|
/** |
* Restrict which sheets should be loaded? |
* This property holds an array of worksheet names to be loaded. If null, then all worksheets will be loaded. |
* |
* @var array of string |
*/ |
protected $_loadSheetsOnly = NULL; |
|
/** |
* PHPExcel_Reader_IReadFilter instance |
* |
* @var PHPExcel_Reader_IReadFilter |
*/ |
protected $_readFilter = NULL; |
|
protected $_fileHandle = NULL; |
|
|
/** |
* Read data only? |
* If this is true, then the Reader will only read data values for cells, it will not read any formatting information. |
* If false (the default) it will read data and formatting. |
* |
* @return boolean |
*/ |
public function getReadDataOnly() { |
return $this->_readDataOnly; |
} |
|
/** |
* Set read data only |
* Set to true, to advise the Reader only to read data values for cells, and to ignore any formatting information. |
* Set to false (the default) to advise the Reader to read both data and formatting for cells. |
* |
* @param boolean $pValue |
* |
* @return PHPExcel_Reader_IReader |
*/ |
public function setReadDataOnly($pValue = FALSE) { |
$this->_readDataOnly = $pValue; |
return $this; |
} |
|
/** |
* Read charts in workbook? |
* If this is true, then the Reader will include any charts that exist in the workbook. |
* Note that a ReadDataOnly value of false overrides, and charts won't be read regardless of the IncludeCharts value. |
* If false (the default) it will ignore any charts defined in the workbook file. |
* |
* @return boolean |
*/ |
public function getIncludeCharts() { |
return $this->_includeCharts; |
} |
|
/** |
* Set read charts in workbook |
* Set to true, to advise the Reader to include any charts that exist in the workbook. |
* Note that a ReadDataOnly value of false overrides, and charts won't be read regardless of the IncludeCharts value. |
* Set to false (the default) to discard charts. |
* |
* @param boolean $pValue |
* |
* @return PHPExcel_Reader_IReader |
*/ |
public function setIncludeCharts($pValue = FALSE) { |
$this->_includeCharts = (boolean) $pValue; |
return $this; |
} |
|
/** |
* Get which sheets to load |
* Returns either an array of worksheet names (the list of worksheets that should be loaded), or a null |
* indicating that all worksheets in the workbook should be loaded. |
* |
* @return mixed |
*/ |
public function getLoadSheetsOnly() |
{ |
return $this->_loadSheetsOnly; |
} |
|
/** |
* Set which sheets to load |
* |
* @param mixed $value |
* This should be either an array of worksheet names to be loaded, or a string containing a single worksheet name. |
* If NULL, then it tells the Reader to read all worksheets in the workbook |
* |
* @return PHPExcel_Reader_IReader |
*/ |
public function setLoadSheetsOnly($value = NULL) |
{ |
$this->_loadSheetsOnly = is_array($value) ? |
$value : array($value); |
return $this; |
} |
|
/** |
* Set all sheets to load |
* Tells the Reader to load all worksheets from the workbook. |
* |
* @return PHPExcel_Reader_IReader |
*/ |
public function setLoadAllSheets() |
{ |
$this->_loadSheetsOnly = NULL; |
return $this; |
} |
|
/** |
* Read filter |
* |
* @return PHPExcel_Reader_IReadFilter |
*/ |
public function getReadFilter() { |
return $this->_readFilter; |
} |
|
/** |
* Set read filter |
* |
* @param PHPExcel_Reader_IReadFilter $pValue |
* @return PHPExcel_Reader_IReader |
*/ |
public function setReadFilter(PHPExcel_Reader_IReadFilter $pValue) { |
$this->_readFilter = $pValue; |
return $this; |
} |
|
/** |
* Open file for reading |
* |
* @param string $pFilename |
* @throws PHPExcel_Reader_Exception |
* @return resource |
*/ |
protected function _openFile($pFilename) |
{ |
// Check if file exists |
if (!file_exists($pFilename) || !is_readable($pFilename)) { |
throw new PHPExcel_Reader_Exception("Could not open " . $pFilename . " for reading! File does not exist."); |
} |
|
// Open file |
$this->_fileHandle = fopen($pFilename, 'r'); |
if ($this->_fileHandle === FALSE) { |
throw new PHPExcel_Reader_Exception("Could not open file " . $pFilename . " for reading."); |
} |
} |
|
/** |
* Can the current PHPExcel_Reader_IReader read the file? |
* |
* @param string $pFilename |
* @return boolean |
* @throws PHPExcel_Reader_Exception |
*/ |
public function canRead($pFilename) |
{ |
// Check if file exists |
try { |
$this->_openFile($pFilename); |
} catch (Exception $e) { |
return FALSE; |
} |
|
$readable = $this->_isValidFormat(); |
fclose ($this->_fileHandle); |
return $readable; |
} |
|
} |