Fatal error: Class ' PHPExcel_IOFactory' not found in ...

Topics: User Forum
Jul 20, 2014 at 10:42 AM
Edited Jul 22, 2014 at 6:54 AM
Hello,
on PHP Version 5.5.9-1ubuntu4.3,
i want to declare a Reader with no type precision,
like Documentation/Examples/Reader/exampleReader4.php
the include_path is in the php.ini
include_path = ".;D:\Public\racine\jpgraph\src;D:\Public\racine\phpexcel\Classes;D:\Public\racine\phpqrcode;"
the include command below not fail
and error is on the line with the call of the class PHPExcel_IOFactory
include "PHPExcel/IOFactory.php";
$Type = PHPExcel_IOFactory::identify($FichierExcel);
The error "Class ' PHPExcel_IOFactory' not found" is not understood...
I use as usual
$Lecteur = new PHPExcel_Reader_Excel5();
$Lecteur->setReadDataOnly(true);
but with know type, no versatil :-)
Thanks for your(s) answer(s)

Olivier
Jul 22, 2014 at 10:13 AM
With another example , more detailled ...
<?php

define (br,"<br />");
$FichierExcel = 'example1.xls';
list($Classeur,$Message) = OuvrirLecture($FichierExcel);
echo $Message.br;


# =================================================================== Ouvrir un classeur en LECTURE (avec load générique)
function OuvrirLecture($FichierExcel) {
    #   $FichierExcel   Chemin complet du fichier EXCEL à lire (absolu ? ca doit marcher aussi pour le relatif)
    #   $Onglets        [option] Tableau des NOMS des onglets à lire

    # --------------------------------------------------------------- Contrôle du fichier d'entrée
    $NomFichier = basename($FichierExcel);
    if (!file_exists($FichierExcel)) {
        $Message = "le fichier '".$NomFichier."' n'existe pas ";
    } else {
        echo get_include_path().br;
        require_once 'PHPExcel/IOFactory.php';
        $Type = PHPExcel_IOFactory::identify($FichierExcel);    # Identify the type of $FichierExcel
        echo "Type:".$Type."!".br;
        $Lecteur = PHPExcel_IOFactory::createReader($Type);     # Create a new Reader of the type that has been identified
        echo br;
        $Classeur = $Lecteur->load($FichierExcel);              # Load $FichierExcel to a PHPExcel Object
        $Classeur->setReadDataOnly(true);                       # Plus rapide 108 à 18 secondes !!!

        # --------------------------------------------------------------- Analyse des entrées
        if (func_num_args() > 1) {
            $Onglets = func_get_arg(1);
        } else {
            $Onglets = array();
        }
        if (!is_array($Onglets)) {
            $Message = "La liste des onglets à ouvrir doit être un tableau";
        } else {
            if (sizeof($Onglets) > 0) {                             # Si la liste des onglets cherchée est connue ! c'est encore plus rapide
                $Classeur->setLoadSheetsOnly($Onglets);             # Plus rapide 18 à 6 secondes ?
            } else {
                    $Classeur->setLoadAllSheets();
            }
        }
    }
    return array($Classeur,$Message);
}
The error is ...
#Fatal error: Class 'PHPExcel_Reader_' not found in D:\Public\racine\PhpExcel_1.8.0\Classes\PHPExcel\IOFactory.php on line 170
A little subtility of the autoload functions (spl) ?