IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[PHPExcel] Charger un fichier pour écrire dedans


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 80
    Points
    80
    Par défaut [PHPExcel] Charger un fichier pour écrire dedans
    Bonjour à tous,
    J'ai un soucis avec le chargement d'un fichier pour écrire dedans.

    Donc je suis parti de l'exemple donné par MaitrePylos
    que voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    $objet = PHPExcel_IOFactory::createReader('Excel5');
     
    $excel = $objet->load('Exemple14.xls');
     
    $sheet = $excel->getSheet(0);
     
    $sheet->setCellValue('A50', 'MaitrePylos');
     
    $writer = PHPExcel_IOFactory::createWriter($excel);
    $writer->save('Exemple14.xls');
    J'ai donc modifié le nom du fichier par le mien et je me retrouve avec l'erreur suivante:
    Fatal error: Class 'PHPExcel_Writer_' not found in /home/www/utils/php2excel/Classes/PHPExcel/IOFactory.php on line 141

    J'ai cherché sur le net sans vraiment trouver/comprendre ce qui n'allait pas.
    Dans le doute j'ai téléchargé la dernière version 1.7.7 pour la mettre à jour.
    Mais cela n'a rien fait.

    L'un d'entre vous a-t-il une idée?

    Je vous remercie d'avance !

  2. #2
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    c'est un probleme d'autoloader. as-tu utilisé __autoload? en théorie faut pas.

    edit:
    tu as bien inclu le fichier PHPExcel.php ?
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 80
    Points
    80
    Par défaut
    Oui j'ai bien inclu le fichier PHPExcel.php et Excel5.php

    Et pour l'autoload, je ne l'ai pas utilisé car je ne sais pas ce que c'est.

    Je pensais avoir trouvé quelque chose (très vaguement) où il fallait mettre le zlib.output_compression sur ON mais cela n'a rien fait.

  4. #4
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    bon l'autoload c'est de la magie qui s'apprend.

    est ce que avant ton code tu peux ajouter les affichages suivants avant tes appels ?
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
            echo '
    <div>
        <strong>Informations</strong>
        <p>
        Généré à ',date('r'),' <br />
        have fun! The script is runned by php version ',phpversion(),'</p>
        <strong>Input: Session</strong>
        <pre>',htmlspecialchars( isset($_SESSION)    ?print_r($_SESSION,true):'no session' ),'</pre>
        <strong>Input: GET</strong>
        <pre>',htmlspecialchars(count($_GET)    ?print_r($_GET,true):'no GET'),'</pre>
        <strong>Input: POST</strong>
        <pre>',htmlspecialchars(count($_POST)    ?print_r($_POST,true):'no POST'),'</pre>
        <strong>Input: FILE</strong>
        <pre>',htmlspecialchars(isset($_FILES)    ?print_r($_FILES,true):'no files received'),'</pre>
        <strong>Input: COOKIE</strong>
        <pre>',htmlspecialchars(count($_COOKIE)    ?print_r($_COOKIE,true):'no coockies'),'</pre>
        <strong>Input: Included files</strong>
        <pre>',print_r(get_included_files(),true),'</pre>
        <strong>Input: Declared Class</strong>
        <pre>',print_r(get_declared_classes(),true),'</pre>
        <strong>Input: Declared Interface</strong>
        <pre>',print_r(get_declared_interfaces(),true),'</pre>
    </div>';
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 80
    Points
    80
    Par défaut
    Voici ce que j'obtiens:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
     
     Informations
     
    Généré à Thu, 06 Sep 2012 13:57:53 +0200
    have fun! The script is runned by php version 5.2.0-8+etch15
    Input: Session
     
    no session
     
    Input: GET
     
    no GET
     
    Input: POST
     
    Array
    (
        [type] => JV
        [creer] => Créer
    )
     
    Input: FILE
     
    Array
    (
    )
     
    Input: COOKIE
     
    Array
    (
        [__utma] => 131158687.1213821404.1337066992.1346770721.1346849471.34
        [__utmz] => 131158687.1337066992.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
        [__atuvc] => 2|31,0|32,0|33,0|34,1|35
        [PHPSESSID] => 006f36f256c1504253b518dc1bd0a074
    )
     
    Input: Included files
     
    Array
    (
        [0] => /home/XXX/www/NouvelleAdministration/PagesDeLAdministration/Commandes_CreerFicheArticles-Generer.php
        [1] => /home/XXX/www/utils/php2excel/Classes/PHPExcel.php
        [2] => /home/XXX/www/utils/php2excel/Classes/PHPExcel/Autoloader.php
        [3] => /home/XXX/www/utils/php2excel/Classes/PHPExcel/Shared/ZipStreamWrapper.php
        [4] => /home/XXX/www/utils/php2excel/Classes/PHPExcel/Shared/String.php
        [5] => /home/XXX/www/utils/php2excel/Classes/PHPExcel/Writer/Excel5.php
        [6] => /home/XXX/www/utils/php2excel/Classes/PHPExcel/Writer/IWriter.php
        [7] => /home/XXX/www/NouvelleAdministration/PagesDeLAdministration/FonctionsDAccesBaseDeDonnees.php
    )
     
    Input: Declared Class
     
    Array
    (
        [0] => stdClass
        [1] => Exception
        [2] => ErrorException
        [3] => ZipArchive
        [4] => XMLWriter
        [5] => LibXMLError
        [6] => SimpleXMLElement
        [7] => SoapClient
        [8] => SoapVar
        [9] => SoapServer
        [10] => SoapFault
        [11] => SoapParam
        [12] => SoapHeader
        [13] => RecursiveIteratorIterator
        [14] => IteratorIterator
        [15] => FilterIterator
        [16] => RecursiveFilterIterator
        [17] => ParentIterator
        [18] => LimitIterator
        [19] => CachingIterator
        [20] => RecursiveCachingIterator
        [21] => NoRewindIterator
        [22] => AppendIterator
        [23] => InfiniteIterator
        [24] => RegexIterator
        [25] => RecursiveRegexIterator
        [26] => EmptyIterator
        [27] => ArrayObject
        [28] => ArrayIterator
        [29] => RecursiveArrayIterator
        [30] => SplFileInfo
        [31] => DirectoryIterator
        [32] => RecursiveDirectoryIterator
        [33] => SplFileObject
        [34] => SplTempFileObject
        [35] => SimpleXMLIterator
        [36] => LogicException
        [37] => BadFunctionCallException
        [38] => BadMethodCallException
        [39] => DomainException
        [40] => InvalidArgumentException
        [41] => LengthException
        [42] => OutOfRangeException
        [43] => RuntimeException
        [44] => OutOfBoundsException
        [45] => OverflowException
        [46] => RangeException
        [47] => UnderflowException
        [48] => UnexpectedValueException
        [49] => SplObjectStorage
        [50] => __PHP_Incomplete_Class
        [51] => php_user_filter
        [52] => Directory
        [53] => ReflectionException
        [54] => Reflection
        [55] => ReflectionFunctionAbstract
        [56] => ReflectionFunction
        [57] => ReflectionParameter
        [58] => ReflectionMethod
        [59] => ReflectionClass
        [60] => ReflectionObject
        [61] => ReflectionProperty
        [62] => ReflectionExtension
        [63] => DOMException
        [64] => DOMStringList
        [65] => DOMNameList
        [66] => DOMImplementationList
        [67] => DOMImplementationSource
        [68] => DOMImplementation
        [69] => DOMNode
        [70] => DOMNameSpaceNode
        [71] => DOMDocumentFragment
        [72] => DOMDocument
        [73] => DOMNodeList
        [74] => DOMNamedNodeMap
        [75] => DOMCharacterData
        [76] => DOMAttr
        [77] => DOMElement
        [78] => DOMText
        [79] => DOMComment
        [80] => DOMTypeinfo
        [81] => DOMUserDataHandler
        [82] => DOMDomError
        [83] => DOMErrorHandler
        [84] => DOMLocator
        [85] => DOMConfiguration
        [86] => DOMCdataSection
        [87] => DOMDocumentType
        [88] => DOMNotation
        [89] => DOMEntity
        [90] => DOMEntityReference
        [91] => DOMProcessingInstruction
        [92] => DOMStringExtend
        [93] => DOMXPath
        [94] => DateTime
        [95] => DateTimeZone
        [96] => XMLReader
        [97] => mysqli_sql_exception
        [98] => mysqli_driver
        [99] => mysqli
        [100] => mysqli_warning
        [101] => mysqli_result
        [102] => mysqli_stmt
        [103] => PDOException
        [104] => PDO
        [105] => PDOStatement
        [106] => PDORow
        [107] => PHPExcel
        [108] => PHPExcel_Autoloader
        [109] => PHPExcel_Shared_ZipStreamWrapper
        [110] => PHPExcel_Shared_String
        [111] => PHPExcel_Writer_Excel5
    )
     
    Input: Declared Interface
     
    Array
    (
        [0] => Traversable
        [1] => IteratorAggregate
        [2] => Iterator
        [3] => ArrayAccess
        [4] => Serializable
        [5] => RecursiveIterator
        [6] => OuterIterator
        [7] => SeekableIterator
        [8] => Countable
        [9] => SplObserver
        [10] => SplSubject
        [11] => Reflector
        [12] => PHPExcel_Writer_IWriter
    )
    Et en plus de cet affichage j'ai le message d'erreur de base.

    Si quelqu'un a une idée là dessus...

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2007
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 57
    Points : 34
    Points
    34
    Par défaut
    Bonjour à tous,

    Je reviens après mes congés sur phpexcel.

    C'est un peu le problème que j'ai (voir les echanges de fin juillet avec gene69 et MaitrePylos que je remercie de leur aide).

    J'ai réinstallé une version de phpexcel (1.7) sur un autre serveur et la je n'ai plus d'erreur.(Il y avait donc déja effectivement un probleme de config )

    Par contre si j'arrive a écrire et créer des fichiers, je n'arrive pas à ecrire dans un fichier existant et l'enregistrer sous un autre nom.j'utilise le code de MaitrePylos que Friksstyle utilise ici.

    Je suis donc l'évolution avec intéret.

  7. #7
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    bonjour

    est ce que tu peux me dire si les droits sont correctement mis sur ton serveur ? sous linux ls -a -R.
    je verrai bien un chmod -R go+rx /home/XXX/www/utils/php2excel/Classes/
    histoire d'être sur.

    si ça ne suffit pas,

    est ce que tu peux inserer provisoirement la ligne suivante dans le fichier PHPExcel\Autoload.php ligne 75:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<pre>DEBUG $pObjectFilePath:', $pObjectFilePath, "\n",' $pClassName ', $pClassName,"\n PHPEXCEL_ROOT:", PHPEXCEL_ROOT , "\n DIRECTORY_SEPARATOR",DIRECTORY_SEPARATOR, '</pre>';
    done moi les lignes qui sortent en "debug" et le message d'erreur. merci
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  8. #8
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    par contre je ne sais pas quel distrib tu as mais WHY the f... tu as des scripts dans /home ?
    habituellement apache utilise un user www-data et (sous ubuntu) le répertoire /var/www ?
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 80
    Points
    80
    Par défaut
    Voici ce que je me resors le débug:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    DEBUG $pObjectFilePath:/home/XXX/www/utils/php2excel/Classes/PHPExcel/Shared/ZipStreamWrapper.php
     $pClassName PHPExcel_Shared_ZipStreamWrapper
     PHPEXCEL_ROOT:/home/XXX/www/utils/php2excel/Classes/
     DIRECTORY_SEPARATOR/
     
    DEBUG $pObjectFilePath:/home/XXX/www/utils/php2excel/Classes/PHPExcel/Shared/String.php
     $pClassName PHPExcel_Shared_String
     PHPEXCEL_ROOT:/home/XXX/www/utils/php2excel/Classes/
     DIRECTORY_SEPARATOR/
     
    DEBUG $pObjectFilePath:/home/XXX/www/utils/php2excel/Classes/PHPExcel/Writer/IWriter.php
     $pClassName PHPExcel_Writer_IWriter
     PHPEXCEL_ROOT:/home/XXX/www/utils/php2excel/Classes/
     DIRECTORY_SEPARATOR/
    Voici le message d'erreur:

    Fatal error: Class 'PHPExcel_Writer_' not found in /home/XXX/www/utils/php2excel/Classes/PHPExcel/IOFactory.php on line 141

    Résultat du chmod pour le dossier "Classes": drwxr-xr-x
    Après le pourquoi j'ai des fichiers script ici et pas là je ne pourrais pas te dire.
    Je suis arrivé "en route" et le serveur ainsi que tout le système était comme ça.

    Je te remercie d'avance de ton aide.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 5
    Points : 7
    Points
    7
    Par défaut
    De mon côté, j'ai résolu le problème en précisant le modèle Excel lors du createWriter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $writer = PHPExcel_IOFactory::createWriter($excel, "Excel5");
    ++

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 149
    Points : 80
    Points
    80
    Par défaut
    Merci de cette précision.
    Dès que j'aurais essayé avec le paramètre de la version du fichier je cocherai Résolu ou pas.

    Mais merci encore de ton aide.

  12. #12
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2012
    Messages : 77
    Points : 85
    Points
    85
    Par défaut
    Bonjour à tous et à toutes,

    Sans surprise, j'ai également un problème avec l'écriture dans un fichier Excel existant par le biai de PHPExcel.

    Voici mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $o_phpexcel = PHPExcel_IOFactory::createReader('Excel2007');
        $o_suivi_quotidien = $o_phpexcel->load($v_destination.$v_record);
        $o_sheet = $o_suivi_quotidien->createSheet();
        $o_sheet->setTitle("NA du $v_NA_debut au $v_NA_fin");
    Je rempli mes cellules avec des titres, des couleurs, de la mise en forme et cette boucle afin d'importer des données depuis un tableau dans lequel je les ai stockées
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $v_ligne=2;
        foreach($tableau as $key => $value){
            $o_sheet->SetCellValue('E'.($v_ligne+1), $value);
            $v_ligne++;
        }
    Puis j'enregistre ce nouvel onglet dans un fichier excel existant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    //Enregistrement de l'onglet dans le fichier Excel
        $o_writer = PHPExcel_IOFactory::createWriter($o_suivi_quotidien, 'Excel2007');
        $o_writer->save($v_destination.$v_record);
    $v_destination correspond au chemin de mon répertoire de destination, et $v_record correspond au nom de mon fichier.

    Voici les erreurs qui s'affichent avec error_reporting(E_ALL);
    Warning: ZipArchive::getFromName() [ziparchive.getfromname]: Invalid or unitialized Zip object in D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel2007.php on line 428

    Warning: ZipArchive::getFromName() [ziparchive.getfromname]: Invalid or unitialized Zip object in D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel2007.php on line 431

    Notice: Trying to get property of non-object in D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel2007.php on line 502

    Warning: Invalid argument supplied for foreach() in D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel2007.php on line 502

    Warning: ZipArchive::getFromName() [ziparchive.getfromname]: Invalid or unitialized Zip object in D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel2007.php on line 428

    Warning: ZipArchive::getFromName() [ziparchive.getfromname]: Invalid or unitialized Zip object in D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel2007.php on line 431

    Notice: Trying to get property of non-object in D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel2007.php on line 539

    Warning: Invalid argument supplied for foreach() in D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel2007.php on line 539

    Warning: ZipArchive::getFromName() [ziparchive.getfromname]: Invalid or unitialized Zip object in D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel2007.php on line 428

    Warning: ZipArchive::getFromName() [ziparchive.getfromname]: Invalid or unitialized Zip object in D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel2007.php on line 431

    Notice: Trying to get property of non-object in D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel2007.php on line 1695

    Warning: Invalid argument supplied for foreach() in D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel2007.php on line 1695

    Warning: ZipArchive::close() [ziparchive.close]: Invalid or unitialized Zip object in D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel2007.php on line 1729
    Je ne comprends pas pourquoi les erreurs concernent des ZipArchive parce que je n'en utilise pas.

  13. #13
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2012
    Messages : 77
    Points : 85
    Points
    85
    Par défaut
    Je remonte le post car j'ai édité mon message, mais j'ai peur que ça passe inaperçu. D'autant que j'ai vraiment besoin d'aide. Mon stage se termine à la fin de la semaine, et j'aimerais bien ne pas être considérée comme la pire stagiaire de tous les temps!

    Je voulais simplement précisé que j'ai mis en commentaire dans mon code tout ce qui concerne la mise en page, les couleurs, la modification de cellules. J'ai simplement laissé les setCellValue mais rien n'y fait... J'ai toujours ces erreurs ZipArchive, et je ne vois pas du tout comment m'en sortir. Je n'arrive pas du tout à défaire le noeud...

    Si vous pouviez m'éclairer de vos lumières... Merci

  14. #14
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    Citation Envoyé par coupable
    Warning: ZipArchive::getFromName() [ziparchive.getfromname]: Invalid or unitialized Zip object in D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel2007.php on line 428
    le coupable te dit qu'il arrive pas à utiliser la librairie de zip. étrange non?
    celle là: http://php.net/manual/fr/class.ziparchive.php


    regarde le message du 06/09/2012 11h43, ajoute le ptit code qui va bien et dit nous si tu vois apparaitre la classe définie "ZipArchive", sinon un ptit tours dans phpinfo() et si toujours pas activé dans le fichier de conf php.ini, sans oublier de recharger le serveur après édition du .ini .
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  15. #15
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2012
    Messages : 77
    Points : 85
    Points
    85
    Par défaut
    Voici ce que j'obtient avec le bout de code :
    Informations

    Généré à Tue, 06 Nov 2012 10:18:43 +0100
    have fun! The script is runned by php version 5.3.1
    Input: Session

    no session

    Input: GET

    no GET

    Input: POST

    Array
    (
    [NAatraiter1] => 05-11
    [NAatraiter2] => 06-11
    [choixBP] => particuliers
    [creationSuivi] => Créer
    [NAmini] => NAminimale
    )

    Input: FILE

    Array
    (
    )

    Input: COOKIE

    no coockies

    Input: Included files

    Array
    (
    [0] => D:\xampp\htdocs\PhpProject1\controleur\gerer_suivi_quotidien.php
    [1] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\IOFactory.php
    [2] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Autoloader.php
    [3] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Shared\ZipStreamWrapper.php
    [4] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Shared\String.php
    [5] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel.php
    [6] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel2007.php
    [7] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\IReader.php
    [8] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Writer\Excel2007.php
    [9] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Writer\IWriter.php
    [10] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel5.php
    [11] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\DefaultReadFilter.php
    [12] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\IReadFilter.php
    [13] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Shared\OLERead.php
    [14] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Worksheet.php
    [15] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\IComparable.php
    [16] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\CachedObjectStorageFactory.php
    [17] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\CachedObjectStorage\Memory.php
    [18] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\CachedObjectStorage\CacheBase.php
    [19] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\CachedObjectStorage\ICache.php
    [20] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Worksheet\PageSetup.php
    [21] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Worksheet\PageMargins.php
    [22] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Worksheet\HeaderFooter.php
    [23] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Worksheet\SheetView.php
    [24] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Worksheet\Protection.php
    [25] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Worksheet\RowDimension.php
    [26] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Worksheet\ColumnDimension.php
    [27] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\DocumentProperties.php
    [28] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\DocumentSecurity.php
    [29] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Style.php
    [30] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Style\Font.php
    [31] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Style\Color.php
    [32] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Style\Fill.php
    [33] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Style\Borders.php
    [34] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Style\Border.php
    [35] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Style\Alignment.php
    [36] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Style\NumberFormat.php
    [37] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Style\Protection.php
    [38] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Shared\CodePage.php
    [39] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Shared\OLE.php
    [40] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Shared\Date.php
    [41] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Cell.php
    [42] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Calculation.php
    [43] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Cell\DataType.php
    [44] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\RichText.php
    [45] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\RichText\TextElement.php
    [46] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\RichText\ITextElement.php
    [47] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\RichText\Run.php
    [48] => D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Cell\Hyperlink.php
    [49] => D:\xampp\htdocs\PhpProject1\controleur\traitement_factures_SQ.php
    [50] => D:\xampp\htdocs\PhpProject1\controleur\creation_tableau_SQ.php
    [51] => D:\xampp\htdocs\PhpProject1\controleur\generer_excel_SQ.php
    )

    Input: Declared Class

    Array
    (
    [0] => stdClass
    [1] => Exception
    [2] => ErrorException
    [3] => Closure
    [4] => COMPersistHelper
    [5] => com_exception
    [6] => com_safearray_proxy
    [7] => variant
    [8] => com
    [9] => dotnet
    [10] => DateTime
    [11] => DateTimeZone
    [12] => DateInterval
    [13] => DatePeriod
    [14] => ReflectionException
    [15] => Reflection
    [16] => ReflectionFunctionAbstract
    [17] => ReflectionFunction
    [18] => ReflectionParameter
    [19] => ReflectionMethod
    [20] => ReflectionClass
    [21] => ReflectionObject
    [22] => ReflectionProperty
    [23] => ReflectionExtension
    [24] => LogicException
    [25] => BadFunctionCallException
    [26] => BadMethodCallException
    [27] => DomainException
    [28] => InvalidArgumentException
    [29] => LengthException
    [30] => OutOfRangeException
    [31] => RuntimeException
    [32] => OutOfBoundsException
    [33] => OverflowException
    [34] => RangeException
    [35] => UnderflowException
    [36] => UnexpectedValueException
    [37] => RecursiveIteratorIterator
    [38] => IteratorIterator
    [39] => FilterIterator
    [40] => RecursiveFilterIterator
    [41] => ParentIterator
    [42] => LimitIterator
    [43] => CachingIterator
    [44] => RecursiveCachingIterator
    [45] => NoRewindIterator
    [46] => AppendIterator
    [47] => InfiniteIterator
    [48] => RegexIterator
    [49] => RecursiveRegexIterator
    [50] => EmptyIterator
    [51] => RecursiveTreeIterator
    [52] => ArrayObject
    [53] => ArrayIterator
    [54] => RecursiveArrayIterator
    [55] => SplFileInfo
    [56] => DirectoryIterator
    [57] => FilesystemIterator
    [58] => RecursiveDirectoryIterator
    [59] => GlobIterator
    [60] => SplFileObject
    [61] => SplTempFileObject
    [62] => SplDoublyLinkedList
    [63] => SplQueue
    [64] => SplStack
    [65] => SplHeap
    [66] => SplMinHeap
    [67] => SplMaxHeap
    [68] => SplPriorityQueue
    [69] => SplFixedArray
    [70] => SplObjectStorage
    [71] => MultipleIterator
    [72] => __PHP_Incomplete_Class
    [73] => php_user_filter
    [74] => Directory
    [75] => LibXMLError
    [76] => DOMException
    [77] => DOMStringList
    [78] => DOMNameList
    [79] => DOMImplementationList
    [80] => DOMImplementationSource
    [81] => DOMImplementation
    [82] => DOMNode
    [83] => DOMNameSpaceNode
    [84] => DOMDocumentFragment
    [85] => DOMDocument
    [86] => DOMNodeList
    [87] => DOMNamedNodeMap
    [88] => DOMCharacterData
    [89] => DOMAttr
    [90] => DOMElement
    [91] => DOMText
    [92] => DOMComment
    [93] => DOMTypeinfo
    [94] => DOMUserDataHandler
    [95] => DOMDomError
    [96] => DOMErrorHandler
    [97] => DOMLocator
    [98] => DOMConfiguration
    [99] => DOMCdataSection
    [100] => DOMDocumentType
    [101] => DOMNotation
    [102] => DOMEntity
    [103] => DOMEntityReference
    [104] => DOMProcessingInstruction
    [105] => DOMStringExtend
    [106] => DOMXPath
    [107] => SimpleXMLElement
    [108] => SimpleXMLIterator
    [109] => XMLReader
    [110] => XMLWriter
    [111] => XSLTProcessor
    [112] => PharException
    [113] => Phar
    [114] => PharData
    [115] => PharFileInfo
    [116] => finfo
    [117] => mysqli_sql_exception
    [118] => mysqli_driver
    [119] => mysqli
    [120] => mysqli_warning
    [121] => mysqli_result
    [122] => mysqli_stmt
    [123] => PDOException
    [124] => PDO
    [125] => PDOStatement
    [126] => PDORow
    [127] => SoapClient
    [128] => SoapVar
    [129] => SoapServer
    [130] => SoapFault
    [131] => SoapParam
    [132] => SoapHeader
    [133] => SQLiteDatabase
    [134] => SQLiteResult
    [135] => SQLiteUnbuffered
    [136] => SQLiteException
    [137] => SQLite3
    [138] => SQLite3Stmt
    [139] => SQLite3Result
    [140] => ZipArchive
    [141] => SWFShape
    [142] => SWFFill
    [143] => SWFGradient
    [144] => SWFBitmap
    [145] => SWFText
    [146] => SWFTextField
    [147] => SWFFont
    [148] => SWFDisplayItem
    [149] => SWFMovie
    [150] => SWFButton
    [151] => SWFAction
    [152] => SWFMorph
    [153] => SWFMovieClip
    [154] => SWFSprite
    [155] => SWFSound
    [156] => SWFFontChar
    [157] => SWFButtonRecord
    [158] => SWFSoundInstance
    [159] => SWFVideoStream
    [160] => SWFBinaryData
    [161] => SWFInitAction
    [162] => SWFPrebuiltClip
    [163] => SWFSoundStream
    [164] => SWFFilter
    [165] => SWFFilterMatrix
    [166] => SWFShadow
    [167] => SWFBlur
    [168] => SWFCXform
    [169] => SWFMatrix
    [170] => SWFInput
    [171] => SWFBrowserFont
    [172] => SWFFontCollection
    [173] => SWFCharacter
    [174] => PDFlibException
    [175] => PDFlib
    [176] => PHPExcel_IOFactory
    [177] => PHPExcel_Autoloader
    [178] => PHPExcel_Shared_ZipStreamWrapper
    [179] => PHPExcel_Shared_String
    [180] => PHPExcel
    [181] => PHPExcel_Reader_Excel2007
    [182] => PHPExcel_Writer_Excel2007
    [183] => PHPExcel_Reader_Excel5
    [184] => PHPExcel_Reader_DefaultReadFilter
    [185] => PHPExcel_Shared_OLERead
    [186] => PHPExcel_Worksheet
    [187] => PHPExcel_CachedObjectStorageFactory
    [188] => PHPExcel_CachedObjectStorage_CacheBase
    [189] => PHPExcel_CachedObjectStorage_Memory
    [190] => PHPExcel_Worksheet_PageSetup
    [191] => PHPExcel_Worksheet_PageMargins
    [192] => PHPExcel_Worksheet_HeaderFooter
    [193] => PHPExcel_Worksheet_SheetView
    [194] => PHPExcel_Worksheet_Protection
    [195] => PHPExcel_Worksheet_RowDimension
    [196] => PHPExcel_Worksheet_ColumnDimension
    [197] => PHPExcel_DocumentProperties
    [198] => PHPExcel_DocumentSecurity
    [199] => PHPExcel_Style
    [200] => PHPExcel_Style_Font
    [201] => PHPExcel_Style_Color
    [202] => PHPExcel_Style_Fill
    [203] => PHPExcel_Style_Borders
    [204] => PHPExcel_Style_Border
    [205] => PHPExcel_Style_Alignment
    [206] => PHPExcel_Style_NumberFormat
    [207] => PHPExcel_Style_Protection
    [208] => PHPExcel_Shared_CodePage
    [209] => PHPExcel_Shared_OLE
    [210] => PHPExcel_Shared_Date
    [211] => PHPExcel_Cell
    [212] => PHPExcel_Calculation
    [213] => PHPExcel_Token_Stack
    [214] => PHPExcel_Cell_DataType
    [215] => PHPExcel_RichText
    [216] => PHPExcel_RichText_TextElement
    [217] => PHPExcel_RichText_Run
    [218] => PHPExcel_Cell_Hyperlink
    )

    Input: Declared Interface

    Array
    (
    [0] => Traversable
    [1] => IteratorAggregate
    [2] => Iterator
    [3] => ArrayAccess
    [4] => Serializable
    [5] => Reflector
    [6] => RecursiveIterator
    [7] => OuterIterator
    [8] => Countable
    [9] => SeekableIterator
    [10] => SplObserver
    [11] => SplSubject
    [12] => PHPExcel_Reader_IReader
    [13] => PHPExcel_Writer_IWriter
    [14] => PHPExcel_Reader_IReadFilter
    [15] => PHPExcel_IComparable
    [16] => PHPExcel_CachedObjectStorage_ICache
    [17] => PHPExcel_RichText_ITextElement
    )
    Je ne comprends pas grand chose de ce qui ressort mais ZipArchive aparaît ligne 140 du tableau Input: Declared Class.

    Mais en fait, à l'installation de la librarie, j'avais vérifié pas mal de truc dans le phpinfo(). J'avais vu sur un site qu'il fallait vérifier que certaines choses étaient bien activée, comme les zip et je ne sais plus quoi. Il y avait 3 ou 4 choses à vérifier. C'était il y a un petit moment déjà!

    EDIT : j'ai retrouvé le fameux tuto que j'avais suivi. C'était ici.
    Et donc j'ai revérifié dans mon phpinfo(), et zip est bien à enabled, comme suit:
    zip
    Zip enabled
    Extension Version $Id: php_zip.c 276389 2009-02-24 23:55:14Z iliaa $
    Zip version 1.9.1
    Libzip version 0.9.0

  16. #16
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    bon zip fonctionne méa-culpa.
    C'est le type de fichier que tu veux ouvrir qui n'est pas correct ou le fichier qui n'existe pas. ou qu'il n'y a pas les droits. ou...
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  17. #17
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2012
    Messages : 77
    Points : 85
    Points
    85
    Par défaut
    Alors pour le type de fichier, c'est un fichier XLS. J'ai mis 'Excel2007' parce qu'à terme il sera installé sur toutes les machines (ce n'est pas encore le cas sur tous les postes) et que normalement, ça ne pose pas de souci... à moins que?
    J'ai effectivement pensé à un problème de droit sur le vrai gros fichier que je dois modifier dans le cadre de mon projet, donc j'ai créé un fichier excel vide avec juste ses trois feuilles de base, et j'ai essayé de modifier celui là, mais rien n'y fait... je me retrouve toujours avec cette même erreur.

  18. #18
    Membre régulier
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    77
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2012
    Messages : 77
    Points : 85
    Points
    85
    Par défaut
    Je relance un peu le topic.
    Pour ma part, j'ai retenté le coup.
    J'ai créé un script test qui contient ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    require_once("../PHPExcel/Classes/PHPExcel/IOFactory.php");
    require_once("../PHPExcel/Classes/PHPExcel.php");
    require_once("../PHPExcel/Classes/PHPExcel/Reader/Excel5.php");
    require_once("../PHPExcel/Classes/PHPExcel/Writer/Excel5.php");
     
    $objet = PHPExcel_IOFactory::createReader('Excel5');
    $excel = $objet->load("fichier.xls");
    $sheet = $excel->getSheet(0);
    $sheet->setCellValue('A1', 'HelloWorld');
    $writer = PHPExcel_IOFactory::createWriter($excel);
    $writer->save("fichier.xls");
    ?>
    Ce fichier est enregistré dans le même répertoire que le fichier.xls à modifier. J'ai vérifié, tous les droits me sont accordés concernant ce fichier.
    Et pourtant, voici l'erreur qui s'affiche:
    Fatal error: Uncaught exception 'Exception' with message 'Could not open fichier.xls for reading! File does not exist, or it is not readable.' in D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Shared\OLERead.php:79 Stack trace: #0 D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel5.php(1183): PHPExcel_Shared_OLERead->read('fichier.xls') #1 D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Reader\Excel5.php(689): PHPExcel_Reader_Excel5->_loadOLE('fichier.xls') #2 D:\xampp\htdocs\PhpProject3\controle2.php(8): PHPExcel_Reader_Excel5->load('fichier.xls') #3 {main} thrown in D:\xampp\htdocs\PHPExcel\Classes\PHPExcel\Shared\OLERead.php on line 79
    J'ai même tenté de rajouté ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once("../PHPExcel/Classes/PHPExcel/Shared/OLERead.php");
    Mais rien n'y fait. Décidément, je suis larguée!

    EDIT : J'ai même tenté, comme Touty avait résolu son problème de cette façon d'ajouter ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5');
    Mais non. Définitivement non!

    EDIT2 : Je pense que j'ai déjà trouvé quelque chose. A priori, il ne faut pas écrire d'adresse absolue dans le $objet->load, mais une adresse relative.Donc je n'ai plus de message d'erreur, mais un bel écran blanc! (Normal, on se rassure!)
    Par contre, mon fichier.xls reste désespérément vide...

Discussions similaires

  1. Problème emplacement fichier pour écrire avec des flots
    Par fantomas261 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 14/09/2010, 02h05
  2. charger un fichier pour un traitement
    Par feather1 dans le forum Caml
    Réponses: 3
    Dernier message: 12/01/2008, 20h46
  3. [FTP] générer un fichier et écrire dedans
    Par stefall dans le forum Langage
    Réponses: 1
    Dernier message: 02/10/2006, 09h22
  4. [.NET]Cherche ligne pour écrire dedans
    Par fab3131 dans le forum MFC
    Réponses: 7
    Dernier message: 02/06/2006, 14h21
  5. Réponses: 3
    Dernier message: 21/03/2006, 13h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo