Developpez.com - Rubrique Excel

Le Club des Développeurs et IT Pro

Tutoriel : Générez des documents Excel avec PHP

Par Gérard Ernaelsten

Le 2009-02-11 10:13:31, par MaitrePylos, Modérateur
[Mise à jour : 22/07/2010]
Le tutoriel comporte maintenant une explication sur la modification de feuilles de calculs existantes grâce à PHPExcel.

Retrouvez cet article ici

Commentez

________________________________________________________

PHPExcel va nous proposer la génération des formats suivants :

  • Excel 2007
  • Excel 2007 - compatible Excel 2003
  • Excel 5 - via la librairie Spreadsheet_Excel_Writer
  • PDF - via la librairie Fpdf
  • CSV
  • HTML


Vous trouverez cet Article ici PHPExcel

Retrouver tous les meilleurs cours et tutoriels pour apprendre PHPl
Retrouver tous les meilleurs cours et tutoriels pour apprendre Microsoft Office Excel
  Discussion forum
223 commentaires
  • MaitrePylos
    Modérateur
    Salut,

    Je viens de tester et ton code fonctionne très bien.
    Tu dois chercher du côté de Zip, il me semble avoir en son temps eu un souci avec zip.dll et qu'il fallait aller chercher la dernière version.
  • beegees
    Membre éprouvé
    SUPER ! merci beaucoup.

    J'ai passé une semaine entière à essayer de faire quelque chose avec writeexcel.

    writeexcel est trop peu documenté, c'est dommage.

    Ce tuto tombe à point.

    Merci encore à toi.

    beegees
  • MaitrePylos
    Modérateur
    Suite à des MP reçu, je vous confirme qu'il est possible de travailler à partir d'un fichier Excel existant.

    Si vous téléchargez la librairie PHPExcel, les tests 07 et 20, abordent un peu le sujet.

    Je viens de faire un petit essai.

    Je m'y suis pris de la façon suivante, en me basant sur les fichiers de démonstration.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    //on inclut la classe nécessaire à la lecture du fichier existant
    include 'PHPExcel/IOFactory.php';
    
    
    
    //on instancie un objet de lecture
    $objReader = PHPExcel_IOFactory::createReader('Excel2007');
    
    //on charge le fichier qu'on veut lire
    
    $objPHPExcel = $objReader->load("05featuredemo.xlsx");
    
    //on modifie ce fichier
    
    $objPHPExcel->getActiveSheet()->setCellValue('A29','MaitrePylos');
    
    
    //on crée un nouveau fichier
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    
    //on le sauve
    $objWriter->save('coco.xlsx');
    Cet aspect sera surement sujet pour améliorer le tuto existant.

    Merci à vous.

    MaitrePylos
  • a028762
    Membre confirmé
    Mais c'est génial, cela !
    Alors que cela fait des années que je jonglais avec COM en entrée
    (pas confiance en sortie)
    et PEAR en sortie
    (beaucoup de fonctions Excel manquent et le format de sortie, .... Excel5)
    Voilà d'un seul coup la solution qui manquait à mes outils,
    remplir de données SQL une trame existante ....
    Merci, oh grand maître Pylos ...

    Dommage que la doc soit si peu fournie, je pense qu'on passe à côté de beaucoup de choses. J'avais testé PHPExcel il y a quelques mois, sans comprendre ce qui s'y cachait

    Bonne semaine à vous tous !
  • chado01
    Nouveau Candidat au Club
    Cet outil est super.
    Dommage qu'il ne puisse pas encore gérer les éléments de formulaire comme les checkbox ou les boutons radio.
    Mais ça devrait venir avec le temps.

    En attendant, personne n'aurai une solution par hasard??
  • jno_azerty
    Nouveau Candidat au Club
    Super outils, et super tuto.
    ça fait longtemps que je chercher ce genre lib.
    Est ce que quelqu'un connait quelque chose d'équivalent pour gérer le format word ? powerpoint ?

    merci d'avance

    jno
  • flashphp
    Candidat au Club
    Bonjour,
    Cet outil est superbe.
    Mais j'ai juste une demande d'aide car j'ai voulu insérer des caractères accentués dans une cellule, et cela donne un fichier excel corrompu.
    Quelqu'un a t i la solution ?

    Merci beaucoup.
  • MaitrePylos
    Modérateur
    Bonjour,

    As-tu essayé les fonctions utf8_decode() et utf8_encode() ?
  • flashphp
    Candidat au Club
    Bonjour,
    En effet, avec utf8_encode ça fonctionne sans problème. Merci
  • N1bus
    Expert confirmé
    Envoyé par beegees
    SUPER ! merci beaucoup.

    J'ai passé une semaine entière à essayer de faire quelque chose avec writeexcel.

    writeexcel est trop peu documenté, c'est dommage.

    Ce tuto tombe à point.

    Merci encore à toi.

    beegees

    Bonjour,

    La doc de WriteExcel se trouve ici :
    http://cpansearch.perl.org/src/JMCNA...riteExcel.html