I. Introduction

Tout d'abord, je dois vous préciser que les exemples qui vont suivre ne fonctionnent que lorsque PHP est hébergé sur une plateforme Windows que l'objet COM puisse communiquer avec Excel.

Aucune activation d'extension particulière n'est nécessaire pour travailler avec COM. Nous allons donc réaliser ce qui suit:

  1. Création d'une petite base de données MYSQL
  2. Création d'un script PHP qui va extraire ces données et générer un fichier Excel formaté.
  3. Création d'un script PHP qui va extraire ces données et générer un fichier Excel contenant un graphique basé sur les données

II. Création de la base de données MYSQL

II-A. Phpmyadmin

Via PhpMyadmin, créez une base de donnée nommée "phpexcel" et copier/coller le code suivant afin de créer votre table.

 
Cacher/Afficher le codeSélectionnez

Votre base de données est maintenant prête.

III. Génération du fichier Excel sans graphique

III-A. Explication du résultat voulu

Nous allons créer un fichier Excel qui contiendra tous les appels des clients, en ayant, un client par colonne et le total du nombre d'appels par client en bas de chaque colonne.

Comme vous vous en doutez, ne sachant pas à l'avance combien de clients ont effectué des appels, il nous faudra appliquer un algorithme pouvant déterminer à la volée, dans quelle colonne, il faudra placer les données.

Les colonnes Excel sont intitulées de la manière suivante "A" "B" "C"....."Z" "AA" "AB" "AC"..."BA" "BB".. Si plus de 26 clients ont appelé, il faudra donc placer le client 27 dans la colonne "AA" et ainsi de suite.

Pour pouvoir réaliser cela, nous allons jouer sur les codes ASCII, il y a peut-être d'autres méthodes mais celle-ci me convient.

Voici à quoi le fichier Excel ressemblera

Image non disponible

III-B. Code PHP

 
Cacher/Afficher le codeSélectionnez

IV. Génération du fichier Excel avec graphique

IV-A. Explication du résultat voulu

Nous allons créer un fichier Excel qui contiendra un graphique montrant le nombre d'appels par client.

Voici à quoi le fichier Excel ressemblera

Image non disponible

IV-B. Code PHP

 
Cacher/Afficher le codeSélectionnez

V. Astuces

Etant donné que la documentation concernant les méthodes de l'objet COM combiné à l'utilisation de PHP est assez rare, il faut se débrouiller pour pouvoir aller plus loin.

Une technique qui permet d'aller plus loin est de simplement, ouvrir Excel et créer une macro automatique, celle-ci enregistrera toutes vos actions jusqu'à ce que vous la stoppiez.

Ensuite, il suffit d'aller voir le code qui a été généré par Excel et de l'implémenter dans PHP.

Le code PHP diffère bien sûr du code VBA, par exemple, cette ligne de VBA:

 
TéléchargerCacher/Afficher le codeSélectionnez

Ne peut bien sûr pas être retranscrite telle quelle dans PHP. Il faudra un peu la modifier, comme ceci:

 
Cacher/Afficher le codeSélectionnez

Comme vous le voyez, cela diffère un peu. La constante VBA xlPie ne peut être utilisée directement dans PHP.

Vous devez donc en connaître la valeur. Pour cela, faites simplement un

 
TéléchargerCacher/Afficher le codeSélectionnez

dans Excel.

VI. Téléchargement et utilisation des scripts

  • Téléchargez le fichier zip et dézippez-le sur votre machine.
  • Créez une base de données MYSQL nommée phpexcel
  • Exécutez le contenu du fichier phpexcel_dump.sql
  • Modifiez les connexions MYSQL dans les scripts PHP et placez-y vos propres paramètres ou créez un fichier de connexion à inclure.

Ces scripts ont été testé sous Windows XP professional/MySQL 4.0.15/PHP 4.3.3