Anglais Francais Prosygma Italie
-
    hebergement asp
prosygma_logo

Techniques

Cette section permet de regrouper un ensemble de techniques ou de scripts qui ont l'originalité d'arriver à résoudre une difficulté avec le moindre effort ou qui sont particulièrement efficaces...

Dans la gestion d'un intranet, extranet et même plus généralement sur tout site web, il peut être intéressant de générer des fichiers excel à la volée car les utilisateurs sur PC windows sont habitués à travaillés avec ce format de données. Ils ont de plus la possibilité de retravaillés ces données afin d'effectuer des statistiques ou générer une sortie graphique.

Depuis n'importe quel langage dynamique, il est extrêmement facile de générer des fichiers excel simple à la volée car le logiciel de Microsoft Windows prend en charge la lecture du format HTML. Il n'est donc pas compliqué de produire un fichier HTML et l'envoyer au navigateur client en lui précisant dans les entêtes que le fichier devra être ouvert par le logiciel Excel.

(Attention cela suppose que le client possède effectivement le logiciel installé sur son poste) .
Cette solution reste trés pratique, facile à implémenté mais sont problème majeur tient sûrement au fait qu'on ne peut afficher qu'une seul page Excel dans le classeur.
Elle a toutefois le mérite d'être supportée depuis Excel 97 et devrait donc fonctionner sur la majorité des clients ayant installé Excel sur leur machine.

Générer un état excel depuis ASP :

Pour celà il suffit simplement avant toute chose de changer le type MIME du document dans le header afin de déclarer que le contenu du document est un fichier excel et non un fichier HTML :

<% 
Response.ContentType = "application/vnd.ms-excel"
%>

Ensuite il s'agit de créer un tableau HTML de données résultant par exemple de l'interrogation d'une base de données :

<% 
'Crée un objet connection à
'la base de données 
set Con =server.createobject("adodb.connection")
connpath="DBQ=" & server.mappath("my_access_database.mdb")
Con.Open "DRIVER={Microsoft Access Driver (*.mdb)}; " &_
 connpath

'Crée un objet recordset pour recueillir 
'les données issue de la requête
set RS=objconn.execute("select * from products")
%>
     <TABLE BORDER=1>
        <TR>
<% 'Faire une boucle sur tous les champs afin d'afficher 'leur nom comme entête de colonnes For i = 0 to RS.Fields.Count - 1 %> <td><%=RS.Fields(i).name%></td> <% next %> </TR> <% 'Faire une boucle sur chaque ligne 'pour afficher les résultats While not RS.EOF %> <TR> <% For i=0 to RS.Fields.Count -1 %> <TD><%=RS.Fields(i)%></TD> <% NEXT %> </TR> <% RS.MoveNext Wend RS.Close Con.Close Set RS = Nothing Set Con = Nothing %>

Voilà comment afficher un fichier excel assez simplement. Bien que basique cette méthode permet de produire rapidement des fichiers à destinations des utilisateurs.

Il est toutefois possible d'enrichir un peut plus l'état final en insérant des formules comme celle-ci :

<tr><TD>=SUM(C1:C4)</TD></tr>
          

Cela indique que le résultat afficher dans la cellule du tableau sera la somme des cellules C1 à C4 calculée par Excel! Il est aussi possible de formater le contenu de la cellule pour avoir une somme monétaire (regroupement des chiffres en triplets) en précédant la valeur d'un signe $, ainsi :

<TD>$<%=RS.Fields(i)%></TD>

Générer un état excel depuis PHP :

Bien sûr, il est aussi facile en utilisant la même méthode de générer des fichier excel à la volée depuis PHP :

// il suffit de préciser le type MIME du document  
header ("Content-type: application/vnd.ms-excel"); 

//ensuite il n'y a plus qu'à générer un tableau HTML 
echo "<table><tr><td>Employé</td><td>Salaire</td></tr>".
     "<tr><td> Mr Smith</td><td>2 000 €</td></tr></table>";