| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * PHPExcel | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2013-12-31 18:36:33 +00:00
										 |  |  |  * Copyright (c) 2006 - 2014 PHPExcel | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  |  * | 
					
						
							|  |  |  |  * 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 | 
					
						
							| 
									
										
										
										
											2013-12-31 18:36:33 +00:00
										 |  |  |  * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  |  * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt	LGPL | 
					
						
							|  |  |  |  * @version    ##VERSION##, ##DATE##
 | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /**	PHPExcel root directory */ | 
					
						
							|  |  |  | if (!defined('PHPEXCEL_ROOT')) { | 
					
						
							|  |  |  | 	/** | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * @ignore | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 */ | 
					
						
							|  |  |  | 	define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../'); | 
					
						
							|  |  |  | 	require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /** | 
					
						
							|  |  |  |  * PHPExcel_IOFactory | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * @category   PHPExcel | 
					
						
							|  |  |  |  * @package    PHPExcel | 
					
						
							| 
									
										
										
										
											2013-12-31 18:36:33 +00:00
										 |  |  |  * @copyright  Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel) | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  |  */ | 
					
						
							|  |  |  | class PHPExcel_IOFactory | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	/** | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * Search locations | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 * | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * @var	array | 
					
						
							|  |  |  | 	 * @access	private | 
					
						
							|  |  |  | 	 * @static | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 */ | 
					
						
							|  |  |  | 	private static $_searchLocations = array( | 
					
						
							|  |  |  | 		array( 'type' => 'IWriter', 'path' => 'PHPExcel/Writer/{0}.php', 'class' => 'PHPExcel_Writer_{0}' ), | 
					
						
							|  |  |  | 		array( 'type' => 'IReader', 'path' => 'PHPExcel/Reader/{0}.php', 'class' => 'PHPExcel_Reader_{0}' ) | 
					
						
							|  |  |  | 	); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/** | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * Autoresolve classes | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 * | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * @var	array | 
					
						
							|  |  |  | 	 * @access	private | 
					
						
							|  |  |  | 	 * @static | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 */ | 
					
						
							|  |  |  | 	private static $_autoResolveClasses = array( | 
					
						
							|  |  |  | 		'Excel2007', | 
					
						
							|  |  |  | 		'Excel5', | 
					
						
							|  |  |  | 		'Excel2003XML', | 
					
						
							|  |  |  | 		'OOCalc', | 
					
						
							|  |  |  | 		'SYLK', | 
					
						
							| 
									
										
										
										
											2010-09-02 13:38:17 +00:00
										 |  |  | 		'Gnumeric', | 
					
						
							| 
									
										
										
										
											2012-05-25 06:45:01 +00:00
										 |  |  | 		'HTML', | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 		'CSV', | 
					
						
							|  |  |  | 	); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							|  |  |  |      *	Private constructor for PHPExcel_IOFactory | 
					
						
							|  |  |  |      */ | 
					
						
							|  |  |  |     private function __construct() { } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     /** | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  |      * Get search locations | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  |      * | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * @static | 
					
						
							|  |  |  | 	 * @access	public | 
					
						
							|  |  |  |      * @return	array | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  |      */ | 
					
						
							|  |  |  | 	public static function getSearchLocations() { | 
					
						
							|  |  |  | 		return self::$_searchLocations; | 
					
						
							|  |  |  | 	}	//	function getSearchLocations()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/** | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * Set search locations | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 * | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * @static | 
					
						
							|  |  |  | 	 * @access	public | 
					
						
							|  |  |  | 	 * @param	array $value | 
					
						
							| 
									
										
										
										
											2012-10-29 23:51:09 +00:00
										 |  |  | 	 * @throws	PHPExcel_Reader_Exception | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 */ | 
					
						
							|  |  |  | 	public static function setSearchLocations($value) { | 
					
						
							|  |  |  | 		if (is_array($value)) { | 
					
						
							|  |  |  | 			self::$_searchLocations = $value; | 
					
						
							|  |  |  | 		} else { | 
					
						
							| 
									
										
										
										
											2012-10-29 23:51:09 +00:00
										 |  |  | 			throw new PHPExcel_Reader_Exception('Invalid parameter passed.'); | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 		} | 
					
						
							|  |  |  | 	}	//	function setSearchLocations()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/** | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * Add search location | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 * | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * @static | 
					
						
							|  |  |  | 	 * @access	public | 
					
						
							|  |  |  | 	 * @param	string $type		Example: IWriter | 
					
						
							|  |  |  | 	 * @param	string $location	Example: PHPExcel/Writer/{0}.php | 
					
						
							|  |  |  | 	 * @param	string $classname 	Example: PHPExcel_Writer_{0} | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 */ | 
					
						
							|  |  |  | 	public static function addSearchLocation($type = '', $location = '', $classname = '') { | 
					
						
							|  |  |  | 		self::$_searchLocations[] = array( 'type' => $type, 'path' => $location, 'class' => $classname ); | 
					
						
							|  |  |  | 	}	//	function addSearchLocation()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/** | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * Create PHPExcel_Writer_IWriter | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 * | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * @static | 
					
						
							|  |  |  | 	 * @access	public | 
					
						
							|  |  |  | 	 * @param	PHPExcel $phpExcel | 
					
						
							|  |  |  | 	 * @param	string  $writerType	Example: Excel2007 | 
					
						
							|  |  |  | 	 * @return	PHPExcel_Writer_IWriter | 
					
						
							| 
									
										
										
										
											2012-10-29 23:51:09 +00:00
										 |  |  | 	 * @throws	PHPExcel_Reader_Exception | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 */ | 
					
						
							|  |  |  | 	public static function createWriter(PHPExcel $phpExcel, $writerType = '') { | 
					
						
							|  |  |  | 		// Search type
 | 
					
						
							|  |  |  | 		$searchType = 'IWriter'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Include class
 | 
					
						
							|  |  |  | 		foreach (self::$_searchLocations as $searchLocation) { | 
					
						
							|  |  |  | 			if ($searchLocation['type'] == $searchType) { | 
					
						
							|  |  |  | 				$className = str_replace('{0}', $writerType, $searchLocation['class']); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				$instance = new $className($phpExcel); | 
					
						
							| 
									
										
										
										
											2012-01-25 23:07:22 +00:00
										 |  |  | 				if ($instance !== NULL) { | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 					return $instance; | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Nothing found...
 | 
					
						
							| 
									
										
										
										
											2012-10-29 23:51:09 +00:00
										 |  |  | 		throw new PHPExcel_Reader_Exception("No $searchType found for type $writerType"); | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	}	//	function createWriter()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/** | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * Create PHPExcel_Reader_IReader | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 * | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * @static | 
					
						
							|  |  |  | 	 * @access	public | 
					
						
							|  |  |  | 	 * @param	string $readerType	Example: Excel2007 | 
					
						
							|  |  |  | 	 * @return	PHPExcel_Reader_IReader | 
					
						
							| 
									
										
										
										
											2012-10-29 23:51:09 +00:00
										 |  |  | 	 * @throws	PHPExcel_Reader_Exception | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 */ | 
					
						
							|  |  |  | 	public static function createReader($readerType = '') { | 
					
						
							|  |  |  | 		// Search type
 | 
					
						
							|  |  |  | 		$searchType = 'IReader'; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Include class
 | 
					
						
							|  |  |  | 		foreach (self::$_searchLocations as $searchLocation) { | 
					
						
							|  |  |  | 			if ($searchLocation['type'] == $searchType) { | 
					
						
							|  |  |  | 				$className = str_replace('{0}', $readerType, $searchLocation['class']); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 				$instance = new $className(); | 
					
						
							| 
									
										
										
										
											2012-01-25 23:07:22 +00:00
										 |  |  | 				if ($instance !== NULL) { | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 					return $instance; | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// Nothing found...
 | 
					
						
							| 
									
										
										
										
											2012-10-29 23:51:09 +00:00
										 |  |  | 		throw new PHPExcel_Reader_Exception("No $searchType found for type $readerType"); | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	}	//	function createReader()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/** | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * Loads PHPExcel from file using automatic PHPExcel_Reader_IReader resolution | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 * | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * @static | 
					
						
							|  |  |  | 	 * @access public | 
					
						
							| 
									
										
										
										
											2013-04-27 17:07:12 +00:00
										 |  |  | 	 * @param 	string 		$pFilename		The name of the spreadsheet file | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * @return	PHPExcel | 
					
						
							| 
									
										
										
										
											2012-10-29 23:51:09 +00:00
										 |  |  | 	 * @throws	PHPExcel_Reader_Exception | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 */ | 
					
						
							|  |  |  | 	public static function load($pFilename) { | 
					
						
							|  |  |  | 		$reader = self::createReaderForFile($pFilename); | 
					
						
							|  |  |  | 		return $reader->load($pFilename); | 
					
						
							|  |  |  | 	}	//	function load()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/** | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * Identify file type using automatic PHPExcel_Reader_IReader resolution | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 * | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * @static | 
					
						
							|  |  |  | 	 * @access public | 
					
						
							| 
									
										
										
										
											2013-04-27 17:07:12 +00:00
										 |  |  | 	 * @param 	string 		$pFilename		The name of the spreadsheet file to identify | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * @return	string | 
					
						
							| 
									
										
										
										
											2012-10-29 23:51:09 +00:00
										 |  |  | 	 * @throws	PHPExcel_Reader_Exception | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 */ | 
					
						
							|  |  |  | 	public static function identify($pFilename) { | 
					
						
							|  |  |  | 		$reader = self::createReaderForFile($pFilename); | 
					
						
							|  |  |  | 		$className = get_class($reader); | 
					
						
							|  |  |  | 		$classType = explode('_',$className); | 
					
						
							|  |  |  | 		unset($reader); | 
					
						
							|  |  |  | 		return array_pop($classType); | 
					
						
							|  |  |  | 	}	//	function identify()
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	/** | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * Create PHPExcel_Reader_IReader for file using automatic PHPExcel_Reader_IReader resolution | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 * | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * @static | 
					
						
							|  |  |  | 	 * @access	public | 
					
						
							| 
									
										
										
										
											2013-04-27 17:07:12 +00:00
										 |  |  | 	 * @param 	string 		$pFilename		The name of the spreadsheet file | 
					
						
							| 
									
										
										
										
											2012-03-11 17:58:38 +00:00
										 |  |  | 	 * @return	PHPExcel_Reader_IReader | 
					
						
							| 
									
										
										
										
											2012-10-29 23:51:09 +00:00
										 |  |  | 	 * @throws	PHPExcel_Reader_Exception | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	 */ | 
					
						
							|  |  |  | 	public static function createReaderForFile($pFilename) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// First, lucky guess by inspecting file extension
 | 
					
						
							|  |  |  | 		$pathinfo = pathinfo($pFilename); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-08-19 22:57:16 +00:00
										 |  |  | 		$extensionType = NULL; | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 		if (isset($pathinfo['extension'])) { | 
					
						
							|  |  |  | 			switch (strtolower($pathinfo['extension'])) { | 
					
						
							| 
									
										
										
										
											2012-07-14 11:33:03 +00:00
										 |  |  | 				case 'xlsx':			//	Excel (OfficeOpenXML) Spreadsheet
 | 
					
						
							|  |  |  | 				case 'xlsm':			//	Excel (OfficeOpenXML) Macro Spreadsheet (macros will be discarded)
 | 
					
						
							|  |  |  | 				case 'xltx':			//	Excel (OfficeOpenXML) Template
 | 
					
						
							|  |  |  | 				case 'xltm':			//	Excel (OfficeOpenXML) Macro Template (macros will be discarded)
 | 
					
						
							| 
									
										
										
										
											2012-05-25 06:45:01 +00:00
										 |  |  | 					$extensionType = 'Excel2007'; | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 					break; | 
					
						
							| 
									
										
										
										
											2012-07-14 11:33:03 +00:00
										 |  |  | 				case 'xls':				//	Excel (BIFF) Spreadsheet
 | 
					
						
							|  |  |  | 				case 'xlt':				//	Excel (BIFF) Template
 | 
					
						
							| 
									
										
										
										
											2012-05-25 06:45:01 +00:00
										 |  |  | 					$extensionType = 'Excel5'; | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 					break; | 
					
						
							| 
									
										
										
										
											2012-07-14 11:33:03 +00:00
										 |  |  | 				case 'ods':				//	Open/Libre Offic Calc
 | 
					
						
							|  |  |  | 				case 'ots':				//	Open/Libre Offic Calc Template
 | 
					
						
							| 
									
										
										
										
											2012-05-25 06:45:01 +00:00
										 |  |  | 					$extensionType = 'OOCalc'; | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 					break; | 
					
						
							|  |  |  | 				case 'slk': | 
					
						
							| 
									
										
										
										
											2012-05-25 06:45:01 +00:00
										 |  |  | 					$extensionType = 'SYLK'; | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 					break; | 
					
						
							| 
									
										
										
										
											2012-07-14 11:33:03 +00:00
										 |  |  | 				case 'xml':				//	Excel 2003 SpreadSheetML
 | 
					
						
							| 
									
										
										
										
											2012-05-25 06:45:01 +00:00
										 |  |  | 					$extensionType = 'Excel2003XML'; | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 					break; | 
					
						
							| 
									
										
										
										
											2010-09-02 13:38:17 +00:00
										 |  |  | 				case 'gnumeric': | 
					
						
							| 
									
										
										
										
											2012-05-25 06:45:01 +00:00
										 |  |  | 					$extensionType = 'Gnumeric'; | 
					
						
							|  |  |  | 					break; | 
					
						
							|  |  |  | 				case 'htm': | 
					
						
							|  |  |  | 				case 'html': | 
					
						
							|  |  |  | 					$extensionType = 'HTML'; | 
					
						
							| 
									
										
										
										
											2010-09-02 13:38:17 +00:00
										 |  |  | 					break; | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 				case 'csv': | 
					
						
							|  |  |  | 					// Do nothing
 | 
					
						
							|  |  |  | 					// We must not try to use CSV reader since it loads
 | 
					
						
							|  |  |  | 					// all files including Excel files etc.
 | 
					
						
							|  |  |  | 					break; | 
					
						
							|  |  |  | 				default: | 
					
						
							|  |  |  | 					break; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-08-19 22:57:16 +00:00
										 |  |  | 			if ($extensionType !== NULL) { | 
					
						
							|  |  |  | 				$reader = self::createReader($extensionType); | 
					
						
							|  |  |  | 				// Let's see if we are lucky
 | 
					
						
							|  |  |  | 				if (isset($reader) && $reader->canRead($pFilename)) { | 
					
						
							|  |  |  | 					return $reader; | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		// If we reach here then "lucky guess" didn't give any result
 | 
					
						
							| 
									
										
										
										
											2012-05-25 06:45:01 +00:00
										 |  |  | 		// Try walking through all the options in self::$_autoResolveClasses
 | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 		foreach (self::$_autoResolveClasses as $autoResolveClass) { | 
					
						
							| 
									
										
										
										
											2012-05-25 06:45:01 +00:00
										 |  |  | 			//	Ignore our original guess, we know that won't work
 | 
					
						
							| 
									
										
										
										
											2012-08-19 22:57:16 +00:00
										 |  |  | 			if ($autoResolveClass !== $extensionType) { | 
					
						
							| 
									
										
										
										
											2012-05-25 06:45:01 +00:00
										 |  |  | 				$reader = self::createReader($autoResolveClass); | 
					
						
							|  |  |  | 				if ($reader->canRead($pFilename)) { | 
					
						
							|  |  |  | 					return $reader; | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-29 23:51:09 +00:00
										 |  |  | 		throw new PHPExcel_Reader_Exception('Unable to identify a reader for this file'); | 
					
						
							| 
									
										
										
										
											2010-08-26 19:14:53 +00:00
										 |  |  | 	}	//	function createReaderForFile()
 | 
					
						
							|  |  |  | } |