| Source for file IOFactory.phpDocumentation is available at IOFactory.php 
 * Copyright (c) 2006 - 2011 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 * @copyright  Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel) * @license    http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt    LGPL * @version    1.7.6, 2011-02-27/**    PHPExcel root directory */    define('PHPEXCEL_ROOT', dirname(__FILE__) . '/../');    require(PHPEXCEL_ROOT . 'PHPExcel/Autoloader.php'); * @copyright  Copyright (c) 2006 - 2011 PHPExcel (http://www.codeplex.com/PHPExcel)    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}' )    private static $_autoResolveClasses = array(     *    Private constructor for PHPExcel_IOFactory    private function __construct() { }        return self::$_searchLocations;    }    //    function getSearchLocations()            self::$_searchLocations = $value;            throw new Exception('Invalid parameter passed.');    }    //    function setSearchLocations()     *    @param    string $type        Example: IWriter     *    @param    string $location    Example: PHPExcel/Writer/{0}.php     *    @param    string $classname     Example: PHPExcel_Writer_{0}    public static function addSearchLocation($type = '', $location = '', $classname = '') {        self::$_searchLocations[] = array( 'type' => $type, 'path' => $location, 'class' => $classname );    }    //    function addSearchLocation()     *    Create PHPExcel_Writer_IWriter     *    @param    PHPExcel $phpExcel      *    @param    string  $writerType    Example: Excel2007     *    @return    PHPExcel_Writer_IWriter     public static function createWriter(PHPExcel $phpExcel, $writerType = '') {        foreach (self::$_searchLocations as $searchLocation) {            if ($searchLocation['type'] == $searchType) {                $className = str_replace('{0}', $writerType, $searchLocation['class']);                $classFile = str_replace('{0}', $writerType, $searchLocation['path']);                $instance = new $className($phpExcel);        throw new Exception("No $searchType found for type $writerType");    }    //    function createWriter()     *    Create PHPExcel_Reader_IReader     *    @param    string $readerType    Example: Excel2007     *    @return    PHPExcel_Reader_IReader         foreach (self::$_searchLocations as $searchLocation) {            if ($searchLocation['type'] == $searchType) {                $className = str_replace('{0}', $readerType, $searchLocation['class']);                $classFile = str_replace('{0}', $readerType, $searchLocation['path']);                $instance = new $className();        throw new Exception("No $searchType found for type $readerType");    }    //    function createReader()     *    Loads PHPExcel from file using automatic PHPExcel_Reader_IReader resolution     *    @param     string         $pFileName     public static function load($pFilename) {        $reader = self::createReaderForFile($pFilename);        return $reader->load($pFilename);     *    Identify file type using automatic PHPExcel_Reader_IReader resolution     *    @param     string         $pFileName     public static function identify($pFilename) {        $reader = self::createReaderForFile($pFilename);        $classType = explode('_',$className);     *    Create PHPExcel_Reader_IReader for file using automatic PHPExcel_Reader_IReader resolution     *    @param     string         $pFileName      *    @return    PHPExcel_Reader_IReader         // First, lucky guess by inspecting file extension        if (isset($pathinfo['extension'])) {                    $reader = self::createReader('Excel2007');                    $reader = self::createReader('Excel5');                    $reader = self::createReader('OOCalc');                    $reader = self::createReader('SYLK');                    $reader = self::createReader('Excel2003XML');                    $reader = self::createReader('Gnumeric');                    // We must not try to use CSV reader since it loads                    // all files including Excel files etc.            // Let's see if we are lucky            if (isset($reader) && $reader->canRead($pFilename)) {        // If we reach here then "lucky guess" didn't give any result        // Try loading using self::$_autoResolveClasses        foreach (self::$_autoResolveClasses as $autoResolveClass) {            $reader = self::createReader($autoResolveClass);            if ($reader->canRead($pFilename)) {    }    //    function createReaderForFile() |