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 :

PhpOffice/PhpSpreadsheet sur serveur php 7.1 et sans Composer


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut PhpOffice/PhpSpreadsheet sur serveur php 7.1 et sans Composer
    Bonjour,

    Je suis sur un serveur en version PHP 7.1.* et je dois générer des Excels.
    J'en étais restée à la librairie PhpExcel et je vois qu'il faut que j'évolue vers PhpSpreadsheet.
    Au travail, je n'ai pas la main sur des données système, je ne peux donc pas utiliser Composer.

    1) Où puis-je trouver une version de PhpSpreadsheet compatible avec PHP 7.1 ?
    Je ne comprends pas où trouver les archives, et j'ai eu beau déranger Chat GPT...

    2) Que dois-je faire comme require et autres includes pour me passer de composer ?

    Merci de vos lumières,

    Dendrite
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  2. #2
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Je précise qu'en attendant une solution pour générer des fichiers excel, je génère des .csv, mais c'est un peu moche...
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 321
    Points : 642
    Points
    642
    Par défaut
    Bonjour,

    PHP 7.1 n'est plus maintenu depuis presque 4 ans (décembre 2019), l'idéal serait de commencer par mettre à jour PHP avec une version maintenue (8.1 ou 8.2).

    Le support de PHP 7.1 par PhpSpreadsheet a été arrêté à la version 1.13.0, il faudrait donc utiliser la version précédente 1.12.0 qui supporte PHP 7.1.
    Si tu n'as pas Composer sur ton serveur en ligne, une solution est d'utiliser Composer en local sur ton environnement de développement et transférer les fichiers générés sur le serveur : https://github.com/PHPOffice/PhpSpre...scussions/1969

    Enfin, une solution alternative serait d'utiliser Spout à la place de PhpSpreadsheet qui peut être installé sans Composer.
    La dernière version de Spout (3.3.0) requiert PHP 7.2. Si tu ne peux pas mettre à jour ta version de PHP, p-e voir la version 3.1.0 de Spout : https://github.com/box/spout/releases

  4. #4
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Merci pour ta réponse exhaustive, Pytet !
    Je vais commencer par aller voir Spout, si c'est gratuit et sans inscription...

    edit :

    Bien, j'en suis là. J'ai fait tel qu'indiqué pour Spout. Et j'ai adapté le code pour Writer.

    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
    <?php
    require_once '../lib/spout-3.1.0/src/Spout/Autoloader/autoload.php';
     
    use Box\Spout\Writer\Common\Creator\WriterEntityFactory;
    use Box\Spout\Common\Entity\Row;
     
    $writer = WriterEntityFactory::createXLSXWriter();
     
    $writer->openToFile('./fusion/toto.xlsx');
    /** Shortcut: add a row from an array of values */
    $values = ['Carl', 'is', 'great!'];
    $rowFromValues = WriterEntityFactory::createRowFromArray($values);
    $writer->addRow($rowFromValues);
     
    $writer->close();
    Et je ne comprends pas bien le message d'erreur :

    ( ! ) Warning: realpath(): open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/www-mon_appli) in /var/www/www-mon_appli/lib/spout-3.1.0/src/Spout/Common/Helper/FileSystemHelper.php on line 22
    Je comprends qu'il me parle du répertoire tmp qui se trouve effectivement à ce niveau dans l'architecture serveur sur laquelle je n'ai pas la main, et qui stocke les variables de session. Je suppose qu'il faut que je colle un autre répertoire tmp spécifique aux i/o, mais je ne sais pas où...

    edit :

    J'ai trouvé. Il a suffi que je personnalise ainsi mon fichier tmp, au lieu de prendre celui par défaut sur le serveur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $writer = WriterEntityFactory::createXLSXWriter();
    $writer->setTempFolder('./fusion');
    Le fichier excel s'est bien créé. Je manipule avec des vraies données et je reviens vers toi ! Merci ! Chat GPT n'a qu'à bien se tenir lol...
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    Membre expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 58
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Points : 3 627
    Points
    3 627
    Billets dans le blog
    8
    Par défaut
    Bonjour,

    Je considère que mon problème est résolu.
    Mais si tu passes par là, Pytet, il me reste une question. Je n'ai pas trouvé dans la doc le moyen de poser un filtre sur la première colonne. J'imagine que c'est parce qu'il n'y en a pas, et moins encore dans la version 3.1.0 de Spout.

    Merci encore à toi !
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  6. #6
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 321
    Points : 642
    Points
    642
    Par défaut
    Hélas l'ajout d'un filtre n'est pas disponible dans Spout et ne semble pas être prévu pour l'instant : https://github.com/box/spout/issues/477

    Merci pour le retour et bon développement !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/09/2015, 17h25
  2. Web Service REST sur serveur PHP avec un client JAVA
    Par john anderta dans le forum Services Web
    Réponses: 0
    Dernier message: 12/11/2012, 20h43
  3. [Sécurité] Modifier php.ini sur serveur distant
    Par guy2004 dans le forum Langage
    Réponses: 5
    Dernier message: 09/07/2009, 18h10
  4. [EasyPHP] [Wamp] Serveur PHP sur MAC
    Par Amnesiak dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 17/11/2005, 17h13
  5. [Conception] PHP et donnee sur serveur .NET
    Par hellosct1 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 11/08/2005, 09h53

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