EcommerceDEV. Développement, optimisation et sécurisation des sites de commerce électronique.
arrowAccueil arrow Programmation arrow J2EE/Java(script) arrow Générer un fichier Excel à la volée et l'envoyer par e-mail à partir d'une page ASP
Samedi 5 juil 2008
Nom d'utilisateur     Mot de passe      Conserver       Mot de passe perdu ? 
Menu
Accueil
A propos du site
Carte du site
Moteur de recherche
Nouvelles
Contactez-nous
Evénements
Lettres de nouvelles
- - - - - - -
Analyse
Conception
Optimisation
Programmation
Sécurité
Produits/Services
avr 11 2006
Générer un fichier Excel à la volée et l'envoyer par e-mail à partir d'une page ASP Version imprimable Suggérer par mail
Appréciation des utilisateurs: / 1
FaibleMeilleur 
Programmation - ASP/.Net/PHP
Ecrit par www.asp-php.net   
11-04-2006
Générer un fichier Excel à la volée et l'envoyer par e-mail à partir d'une page ASP.

Générer un fichier Excel à la volée et l'envoyer par e-mail à partir d'une page ASP.

 

Sur certains sites de commerce électronique, les webmasters proposent à leurs membres de recevoir périodiquement par email des informations classées dans un fichier Excel. Cet exemple vous montre comment utiliser ASP (code Vbscript) pour générer un fichier Excel et l'envoyer par courriel à vos membres. Les informations sont issues d'une base de données et le résultat de la requête de tri est stocké dans un fichier sur le serveur qui est ensuite envoyé en pièces jointes au demandeur via ASPMail.

 

Pour être compatible avec Excel le fichier doit, outre l'extension (.slk), avoir la structure suivante:

 

ID;PWXL;N;E    Début du codage
C;Y1;X1;K"Libellé"    les guillemets seront codés avec chr(34)
C;Y1;X2;Knombre
... etc
E    Fin du codage

 

classement-excel.asp

 

<% ' Script de Dom - 
       ' actif sur http://www.domchauvet.com/delta

Action = Left(UCase(Request("Action")),5)
If Action = "RECEV" Then ' Arrivée du formulaire

   ' 1. Mémorisation de l'adresse E-mail dans un cookie

   Response.Cookies("deltamail")= Request("Mail")
   Response.Cookies("deltamail").Expires = Date+365
   Response.Cookies("deltamail").Domain="domchauvet.com"
   Response.Cookies("deltamail").Path = "/delta"

   ' 2. Tri de la Base de Données

   Set OBJdbConnection = Server.CreateObject("ADODB.Connection") 
   OBJdbConnection.Open "nom_de_la_base"
   SQLQuery = "SELECT nom,prénom,total,rang FROM nom_de_la_table " _
      & "WHERE total > 0 ORDER BY total DESC "
   Set RS = OBJdbConnection.Execute(SQLQuery)

   ' 3. Création du fichier

   Set FSO = Server.CreateObject("Scripting.FileSystemObject")
   dim dir : dir = Server.MapPath("/images")
   set inF = FSO.CreateTextFile(dir & "\" & Request("type"))

   ' Fichier au format Excel (.slk)
   if right(Request("type"),3)="slk" then
      inF.writeLine"ID;PWXL;N;E" ' Début du codage excel
      ' chr (34) remplace les guillements à la suite de l'instruction
      inF.writeLine"C;Y1;X1;K"&chr(34)&("PLACE")&chr(34) 
      inF.writeLine"C;Y1;X2;K"&chr(34)&("NOM")&chr(34)
      inF.writeLine"C;Y1;X3;K"&chr(34)&("PRENOM")&chr(34)
      inF.writeLine"C;Y1;X4;K"&chr(34)&("POINTS")&chr(34)
      i=2 ' Affichage à partir de la ligne 2
      While Not rs.eof
         inF.writeLine"C;Y"&(""&i&";X1;K")&(rs("Rang"))
         inF.writeLine"C;Y"&(""&i&";X2;K")&chr(34)&(rs("Nom"))&chr(34)
         inF.writeLine"C;Y"&(""&i&";X3;K")&chr(34)&(rs("Prénom"))&chr(34)
         inF.writeLine"C;Y"&(""&i&";X4;K")&(rs("TOTAL"))
         i=i+1
         Rs.MoveNext
      wend
      inF2.writeLine"E" ' Fin du codage excel

   ' ou fichier au format texte (.txt)
   else 
      inF.writeLine("Rang"&";"&"Nom"&";"&"Prénom"&";"&"Points")
      While Not rs.eof
         inF.writeLine(rs("Rang")&";"&rs("Nom")&";"&rs("Prénom")&";"&rs("TOTAL")&";")
         Rs.MoveNext
      wend
   end if
   inF.close

   ' 4. Fermeture de la connexion à la BD

   RS.close : set RS = nothing
   OBJdbConnection.close : set OBJdbConnection = nothing

   ' 5. Envoi du fichier par ASPMail

   Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
   Mailer.FromName   = "DomChauvet"
   Mailer.FromAddress= " "
   Mailer.RemoteHost = "SMTP.domchauvet.com"
   Mailer.AddRecipient Request("Mail"), Request("Mail")
   Mailer.AddAttachment dir&"\"&Request("type")
   Mailer.Organization = "Site Deltaplane"
   Mailer.Subject = "Le classement des sélectives"
   strBody = "Voici le classement des sélectives à ce jour." & VbCrLf
   strBody = strBody &  "Nom du fichier joint "&Request("type")&"." & VbCrLf
   strBody = strBody &  "Amicalement. DomChauvet" & VbCrLf
   Mailer.BodyText = strBody
   if Mailer.SendMail then
      msg="Félicitations : Le classement est dans votre boite aux lettres" _
         & "<br>Fichier : "&Request("type")
   else
      msg="Problème d'envoi<br>"&Mailer.Response
   end if

End If %>


<html><head><title>Classement national</title>
</head><body>
<%if msg="" then%>
   <p align="center"><b>Obtenir tout de suite ce <u>classement complet</u>
   dans un fichier &quot;Excel&quot; ou &quot;texte&quot;</b></p>

   <form method="POST" action="classement_excel.asp">
      <table border="0" cellspacing="1" width="500">
         <tr>
            <td>Recevez ce fichier en indiquant simplement</td>
         </tr><tr>
            <td><select size="1" name="type">
               <option value="classement_excel.slk">excel</option>
               <option value="classement_texte.txt">texte</option>
            </select>  le type de fichier choisi</td>
         </tr><tr>
            <td><input type="text" name="Mail" size="22"
               value="<%=Request.Cookies("deltamail")%>"> votre e-mail</td>
         </tr><tr>
            <td><input type="submit" value="Recevoir" name="Action">
               un seul clic suffit ...</td>
         </tr>
      </table>
   </form>

   <p>La version excel (fichier *.slk) est compatible avec Excel</p>
   <p>La version texte (fichier *.txt) est compatible avec Word, Works, Word Pad etc....</p>

<%else%>
   <br>
    <p align="center"><b><%=msg%></b></p>
<%end if%>

</body></html>

 

Le code source reproduit ci-dessus est extrait du site asp-php.net. Référence: http://www.asp-php.net

 

 

Dernière mise à jour : ( 21-06-2006 )
< Précédent   Suivant >
Java-XML et oracle : E-commerce - EAI - portails d'entreprise - Applications mobiles
Java-XML et oracle : E-commerce - EAI - portails d'entreprise - Applications mobiles

Cet ouvrage montre comment tirer parti de l'offre Java-XML d'Oracle, tant au niveau de la base de données Oracle8i (drivers JDBC, conteneur EJB, ORB Corba, XSQL...), que des produits associés, outils XML-XSLT, JDeveloper, Oracle9i Application Server, etc.


L'ouvrage insiste tout particulièrement sur les problèmes d'intégration de ces technologies, de design des architectures et de scalabilité des applications. II est illustré de nombreux exemples de code et de deux études de cas, une application e-commerce construite à l'aide d'EJB et un serveur de documents XML multithread.

 

Références

 

Lien sur le site d'Amazon.

Fréderic Berque, Serge Frezefond, Ludovic Sorriaux

Titre : Java, XML et Oracle
Éditeur : Eyrolles
Collection : Solutions Développeurs
Parution : mars 2001
634 pages
ISBN : 2-212-09149-4
EAN13 : 9782212091496

Moteur de recherche
Recommander ce site
Collaboration
Téléchargements
Derniers événements
Aucun événement
Sondages

En Java, quelle la meilleure technique pour programmer un panier d’achat ?

  
Blogs Ecommerce
Blog de capitaine commerce
top

Ce site a été crée avec le CMS Mambo. Un logiciel gratuit disponible sous licence GPL.

Copyright Ecommerce DEV 2006.

Hosted by SiteGround