Forum de discussion
Forum « Programmation ASP » (archives)
Re: asp en excel
Envoyé: 14 janvier 2002, 6h44 par Oznog
Tu as plusieurs options.
1. Utiliser ADO pour ouvrir un document Excel et le mettre à jour comme s'il s'agissait d'une base de données.
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q195951
2. Tu peux le faire en observant un document CSV dans notepad. Tu reproduit la même chose.
3. Utilise ce code
<% ' Script de Dom - webmaster@domchauvet.com
' 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= "webmaster@domchauvet.com"
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 "Excel" ou "texte"</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>
Ciao
Oznog
Réponses
|