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

Langage PHP Discussion :

Utiliser la librairie PhpSpreadSheet


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 151
    Par défaut Utiliser la librairie PhpSpreadSheet
    Bonjour,

    Je souhaiterai utiliser la librairie PhpSpreadSheet afin d'écrire un fichier excel,
    Mais je ne comprends pas comment l'implémenter...
    La documentation (ici) est vraiment trop concise...
    Installation
    Use composer to install PhpSpreadsheet into your project:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    composer require phpoffice/phpspreadsheet
    Euh... Et ?!?

  2. #2
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 373
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 373
    Billets dans le blog
    17
    Par défaut
    Il y a un exemple de génération de fichier juste après :

    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 'vendor/autoload.php';
     
    use PhpOffice\PhpSpreadsheet\Spreadsheet;
    use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
     
    $spreadsheet = new Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();
    $sheet->setCellValue('A1', 'Hello World !');
     
    $writer = new Xlsx($spreadsheet);
    $writer->save('hello world.xlsx');
    Le require du autoload.php est important, il permet de charger Composer.

    Ensuite tu es prêt à utiliser phpSpreadsheet, et je te souhaite bien du courage

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 151
    Par défaut
    Mais justement, il manque la librairie quleque part.
    J'ai essayé l'exemple pour commencer, mais j'ai ces messages d'erreur au lancement de ma page:

    Warning: require(vendor/autoload.php): failed to open stream: No such file or directory in /XXX.php on line XX

    Fatal error: require(): Failed opening required 'vendor/autoload.php' (include_path='.:/opt/php-7.4.13/data/pear') in /XXX.php on line XX

  4. #4
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 373
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 373
    Billets dans le blog
    17
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: require(vendor/autoload.php): failed to open stream: No such file or directory in /XXX.php on line XX
    Ben non, c'est Composer qui est inaccessible, pas phpSpreadsheet.

    Tu dois inclure vendor/autoload.php avant tout. Cherche le et fais un require avec le chemin adéquat.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 151
    Par défaut
    Citation Envoyé par Séb. Voir le message
    Tu dois inclure vendor/autoload.php avant tout. Cherche le et fais un require avec le chemin adéquat.
    "Cherche-le" ?

    Je viens d'essayer d'installer Composer (depuis ici), même si je comprends pas du tout ce que c'est, mais cela n'a rien changé non plus...

    J'ai trouvé > ca < aussi, mais je comprends rien...

    Je suis complètement paumé...

  6. #6
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 373
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 373
    Billets dans le blog
    17
    Par défaut
    Je viens d'essayer d'installer Composer (depuis ici), même si je comprends pas du tout ce que c'est
    Composer https://getcomposer.org/ est un gestionnaire de dépendances très utilisé dans le monde PHP.
    Il fonctionne souvent de concert avec Packagist https://packagist.org/
    Proposant ainsi une solution complète d'installation de bibliothèque et de leurs dépendances

    Ex. pour phpSpreadsheet => https://packagist.org/packages/phpoffice/phpspreadsheet, dans la section requires de la page tu vois que la lib nécessite

    ezyang/htmlpurifier: ^4.13
    maennchen/zipstream-php: ^2.1
    markbaker/complex: ^2.0
    markbaker/matrix: ^2.0
    psr/http-client: ^1.0
    psr/http-factory: ^1.0
    psr/simple-cache: ^1.0
    Grâce à Composer/Packagist tu n'auras pas besoin d'installer toi-même ces libs, Composer s'en chargera pour toi. J'espère t'éclaircir

    Bon, dans un 1er temps il faut installer Composer et le rendre accessible/exécutable depuis la console.
    Tu as les instructions ici => https://getcomposer.org/download/
    Où en es-tu ? Es-tu sous Windows ou Linux ? Où as-tu installé Composer ?

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 151
    Par défaut
    Merci pour ta réponse, oui ca m'éclaire un peu mieux déjà.

    Je suis sous Windows.

    Je ne sais pas où est-ce que Composer s'est installé.
    J'ai juste ca que je peux modifier mais que j'ai laissé tel quel dans le processus d'installation.
    PHP version 8.0.3
    C:\xampp\php\php.exe

  8. #8
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 373
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 373
    Billets dans le blog
    17
    Par défaut
    Je ne sais pas où est-ce que Composer s'est installé.
    Cherche "composer" depuis l'outil de recherche de fichiers Windows
    Regarde le PATH dans la console C:\>echo %PATH%

  9. #9
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 151
    Par défaut
    Je tombe dans C:\ProgramData\ComposerSetup\bin

  10. #10
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 151
    Par défaut
    Et ensuite ?
    Je ne comprends toujours pas ce que je suis censé faire...

    J'ai tenté aussi de faire une recherche de "autoload.php" sur mon PC qui n'a rien donné.

    Où sont ces librairies dont j'ai besoin pour utiliser PhpSpreadSheet !?

  11. #11
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 373
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 373
    Billets dans le blog
    17
    Par défaut
    Bon, dans un 1er temps il faut installer Composer et le rendre accessible/exécutable depuis la console.
    Tu as les instructions ici => https://getcomposer.org/download/
    Où en es-tu ? Es-tu sous Windows ou Linux ? Où as-tu installé Composer ?
    Composer est-il exécutable et accessible ? As-tu fait comme indiqué dans la doc ?
    vendor/autoload.php sera généré à l'initialisation du projet en faisant un php composer.phar init dans le répertoire de ton projet depuis la console Windows ( https://getcomposer.org/doc/03-cli.md#init )
    Ensuite tu pourras faire un php composer.phar require phpoffice/phpspreadsheet

  12. #12
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 151
    Par défaut
    J'ai téléchargé Composer-setup.exe et je l'ai exécuté.
    Maintenant j'ai "composer" (file), "composer.bat" et "composer.phar" dans C:\ProgramData\ComposerSetup\bin

    J'en suis là.

    Le répertoire du projet est sur un serveur.

  13. #13
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 151
    Par défaut
    Suivant le guide ici: https://www.hostinger.fr/tutoriels/c...iser-composer/, je me suis retrouvé bloqué vers la moitié au niveau de la commande:

    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
    C:\Users\MyComputerName>composer require phpoffice/phpspreadsheet
    Using version ^1.18 for phpoffice/phpspreadsheet
    ./composer.json has been created
    Running composer update phpoffice/phpspreadsheet
    Loading composer repositories with package information
    Updating dependencies
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Root composer.json requires phpoffice/phpspreadsheet ^1.18 -> satisfiable by phpoffice/phpspreadsheet[1.18.0].
        - phpoffice/phpspreadsheet 1.18.0 requires ext-gd * -> it is missing from your system. Install or enable PHP's gd extension.
    
    To enable extensions, verify that they are enabled in your .ini files:
        - C:\xampp\php\php.ini
    You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
    
    Installation failed, deleting ./composer.json.
    Dans le fichier php.ini, j'ai supprimé le point-virgule ";" devant "extension=gd" et en relancant la commande cela à fonctionné.

    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
    C:\Users\MyComputerName>composer require phpoffice/phpspreadsheet
    Using version ^1.18 for phpoffice/phpspreadsheet
    ./composer.json has been created
    Running composer update phpoffice/phpspreadsheet
    Loading composer repositories with package information
    Updating dependencies
    Lock file operations: 11 installs, 0 updates, 0 removals
      - Locking ezyang/htmlpurifier (v4.13.0)
      - Locking maennchen/zipstream-php (2.1.0)
      - Locking markbaker/complex (2.0.3)
      - Locking markbaker/matrix (2.1.3)
      - Locking myclabs/php-enum (1.8.0)
      - Locking phpoffice/phpspreadsheet (1.18.0)
      - Locking psr/http-client (1.0.1)
      - Locking psr/http-factory (1.0.1)
      - Locking psr/http-message (1.0.1)
      - Locking psr/simple-cache (1.0.1)
      - Locking symfony/polyfill-mbstring (v1.23.0)
    Writing lock file
    Installing dependencies from lock file (including require-dev)
    Package operations: 11 installs, 0 updates, 0 removals
      - Downloading myclabs/php-enum (1.8.0)
      - Downloading psr/simple-cache (1.0.1)
      - Downloading psr/http-message (1.0.1)
      - Downloading psr/http-factory (1.0.1)
      - Downloading psr/http-client (1.0.1)
      - Downloading markbaker/matrix (2.1.3)
      - Downloading markbaker/complex (2.0.3)
      - Downloading symfony/polyfill-mbstring (v1.23.0)
      - Downloading maennchen/zipstream-php (2.1.0)
      - Downloading ezyang/htmlpurifier (v4.13.0)
      - Downloading phpoffice/phpspreadsheet (1.18.0)
      - Installing myclabs/php-enum (1.8.0): Extracting archive
      - Installing psr/simple-cache (1.0.1): Extracting archive
      - Installing psr/http-message (1.0.1): Extracting archive
      - Installing psr/http-factory (1.0.1): Extracting archive
      - Installing psr/http-client (1.0.1): Extracting archive
      - Installing markbaker/matrix (2.1.3): Extracting archive
      - Installing markbaker/complex (2.0.3): Extracting archive
      - Installing symfony/polyfill-mbstring (v1.23.0): Extracting archive
      - Installing maennchen/zipstream-php (2.1.0): Extracting archive
      - Installing ezyang/htmlpurifier (v4.13.0): Extracting archive
      - Installing phpoffice/phpspreadsheet (1.18.0): Extracting archive
    4 package suggestions were added by new dependencies, use `composer suggest` to see details.
    Generating autoload files
    3 packages you are using are looking for funding.
    Use the `composer fund` command to find out more!
    Les fichiers composer.json et composer.lock ont été génerés à la racine du nom d'utilisateur de mon PC.
    Le dossier vendor a également été ajouté.
    Sauf que comme mon projet est hébergé sur un serveur distant, je dois copier tout ce beau monde dessus je suppose ? Je ne sais pas du tout comment faire, ni même où les déposer sur le serveur...

  14. #14
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 151
    Par défaut
    Après avoir déposer les fichiers "composer.json" et "composer.lock" ainsi que le dossier "vendor" dans le dossier de mon serveur via Filezila, cela fonctionne !

    C'était bien compliqué pour utiliser une librairie censé être courante, mais bref...
    Merci pour votre aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utiliser une librairie
    Par BugFactory dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 11/10/2005, 16h24
  2. Problème avec l'utilisation de librairies
    Par Aradesh dans le forum MFC
    Réponses: 3
    Dernier message: 01/08/2005, 15h00
  3. portage d'une appli utilisant la librairie word
    Par neonico dans le forum MFC
    Réponses: 4
    Dernier message: 23/02/2005, 23h48
  4. Creer et utiliser une librairie externe à l'exécutable
    Par multani dans le forum Autres éditeurs
    Réponses: 7
    Dernier message: 06/11/2003, 10h11
  5. Utiliser une librairie graphique
    Par Troopers dans le forum Linux
    Réponses: 6
    Dernier message: 22/08/2003, 11h22

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