Sql =>exel via asp
Résolu/Fermé
batoune
Messages postés
538
Date d'inscription
jeudi 20 septembre 2007
Statut
Membre
Dernière intervention
4 avril 2017
-
19 mai 2009 à 14:10
batoune Messages postés 538 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 4 avril 2017 - 20 mai 2009 à 10:13
batoune Messages postés 538 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 4 avril 2017 - 20 mai 2009 à 10:13
Bonjour,
j'ai réalisé des pages web en ASP, depuis ces pages, je récupere des données dans une BDD microsoft SQL serveur 2005.
Je voudrais savoir si il etait possible de générer via mes pages ASP un fichier exel qui contiendrait le résultats de ma requete sur la BDD, et si oui, comment faire?
j'ai réalisé des pages web en ASP, depuis ces pages, je récupere des données dans une BDD microsoft SQL serveur 2005.
Je voudrais savoir si il etait possible de générer via mes pages ASP un fichier exel qui contiendrait le résultats de ma requete sur la BDD, et si oui, comment faire?
A voir également:
- Sql =>exel via asp
- Exel 2013 - Télécharger - Tableur
- Partager des photos via un lien - Guide
- Via michelin carte - Télécharger - Transports & Cartes
- Liste deroulante exel - Guide
- Logiciel sql - Télécharger - Bases de données
2 réponses
batoune
Messages postés
538
Date d'inscription
jeudi 20 septembre 2007
Statut
Membre
Dernière intervention
4 avril 2017
96
19 mai 2009 à 16:12
19 mai 2009 à 16:12
Bon, suite a diverse recherche j'ai trouver quelque chose qui consiste a ecrire du html et a le transformer en xls a la fin, mais malger tout mes effort j'ai toujours une erreur :
Erreur d'exécution Microsoft VBScript error '800a01a8'
Objet requis: 'System'
/Sauvegarde.asp, line 50
mon code est le suivant :
l'erreur est sur la ligne "HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default"
Voila, j'espere que quelqu'un pourra m'aider
merci d'avance
Erreur d'exécution Microsoft VBScript error '800a01a8'
Objet requis: 'System'
/Sauvegarde.asp, line 50
mon code est le suivant :
<%@ LANGUAGE="VBScript" %> <% Dim serverAdresse 'adresse du serveur Dim user 'utilisateur Dim password 'mot de passe Dim nomBase 'nom de la base a utiliser Dim Maconnexion Dim conn Dim nbcol Dim Temp 'une chaine de caractere %> <% 'On ce connecte a la base de donnees 'Parametre de connection a la base serverAdresse = "blabla\blibli" 'adresse du serveur user = "leLogin" 'utilisateur password = "lePassword" 'mot de passe nomBase = "resultats" 'nom de la base a utiliser 'Ouverture de la connection Set Maconnexion = Server.CreateObject("ADODB.Connection") conn = "driver={SQL Server};server="& serverAdresse &";db=" & nomBase & ";user id=" & user & ";pwd=" & password ' & ";option=16386" Maconnexion.open conn set nbcol = server.CreateObject("ADODB.Recordset")'on crer l'objet recordset nbcol.open "SELECT nomTest,etat,plageHoraire FROM resultats_tests WHERE CAST(FLOOR(CAST(laDate AS FLOAT)) AS DATETIME) = '20090519' AND environnement = 'Maison'", Maconnexion, 3, 3, 1 nbcol.movefirst'on ce place sur le 1ere enregistrement du recordset Temp = Temp &"<TABLE BORDER=1><TR>" Temp = Temp &"<TD><B>Fonction</B></TD>" Temp = Temp &"<TD><B>Etat</B></TD>" Temp = Temp &"<TD><B>Plage Horaire</B></TD>" Temp = Temp &"</TR>" DO while Not nbcol.EOF 'tant que on est pas a la fin des enregistrements Temp = Temp &"<TR>" Temp = Temp &"<TD>" & nbcol("NomTest") & "</TD>" Temp = Temp &"<TD>" & nbcol("etat") & "</TD>" Temp = Temp &"<TD>" & nbcol("plageHoraire") & "</TD>" Temp = Temp &"</TR>" nbcol.movenext 'on pas a l'enregistrement suivant LOOP 'fin de la boucle nbcol.Close 'on referme l'objet recordset Set nbcol=Nothing 'on le met a rien pour liberer de la memoire Maconnexion.Close 'Déconnexion de SQL une fois tout les résultats affiché Set Maconnexion = Nothing 'Affectation a rien de l'objet Maconnexion Temp = Temp &"</TABLE>" HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default HttpContext.Current.Response.ContentType = "application/vnd.ms-excel" HttpContext.Current.Response.Write(Temp) %>
l'erreur est sur la ligne "HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default"
Voila, j'espere que quelqu'un pourra m'aider
merci d'avance
batoune
Messages postés
538
Date d'inscription
jeudi 20 septembre 2007
Statut
Membre
Dernière intervention
4 avril 2017
96
20 mai 2009 à 10:13
20 mai 2009 à 10:13
Bon une fois encore j'ai trouver ma reponse tout seul,
Alors vu que sa ma bien souler tout sa, je la met ici des fois que sa interresserais quelqu'un :
Dans une premiere page .asp, je fais :
en premiere ligne :
<%@ LANGUAGE="VBScript" %>
déclaration des variables :
<%
Dim serverAdresse 'adresse du serveur
Dim user 'utilisateur
Dim password 'mot de passe
Dim nomBase 'nom de la base a utiliser
Dim Maconnexion 'objet connexion
Dim conn
Dim nbcol un recordset
%>
entete de page html :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>nomdemapage</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css.css" />
</head>
<body>
On ce connecte a la base de données et on fait notre requete sql:
<%
'Parametre de connection a la base
serverAdresse = "blabla" 'adresse du serveur
user = "user" 'utilisateur
password = "password" 'mot de passe
nomBase = "maBase" 'nom de la base a utiliser
'Ouverture de la connection
Set Maconnexion = Server.CreateObject("ADODB.Connection")
conn = "driver={SQL Server};server="& serverAdresse &";db=" & nomBase & ";user id=" & user & ";pwd=" & password
Maconnexion.open conn
'requete sql
set nbcol = server.CreateObject("ADODB.Recordset")'on crer l'objet recordset
nbcol.open "SELECT nom,prenom,lieu FROM maTable WHERE nom = 'Martin' AND lieu = 'bureau' ORDER BY nom, prenom", Maconnexion, 3, 3, 1 'on execute la requete sql
On creer un tableau html dans la variable Temp a partir des lignes de la requete (le recordset):
nbcol.movefirst'on ce place sur le 1ere enregistrement du recordset
Temp = Temp &"<TABLE BORDER=1><TR>"
Temp = Temp &"<TD><B>Fonction</B></TD>"
Temp = Temp &"<TD><B>Etat</B></TD>"
Temp = Temp &"<TD><B>Plage Horaire</B></TD>"
Temp = Temp &"</TR>"
DO while Not nbcol.EOF 'tant que on est pas a la fin des enregistrements
Temp = Temp &"<TR>"
Temp = Temp &"<TD>" & nbcol("nom") & "</TD>"
Temp = Temp &"<TD>" & nbcol("prenom") & "</TD>"
Temp = Temp &"<TD>" & nbcol("lieu") & "</TD>"
Temp = Temp &"</TR>"
nbcol.movenext 'on pas a l'enregistrement suivant
LOOP 'fin de la boucle
nbcol.Close 'on referme l'objet recordset
Set nbcol=Nothing 'on le met a rien pour liberer de la memoire
Temp = Temp &"</TABLE>"
On crer un formulaire avec un bouton qui appel une autre page (ici excel.asp) et un champ cacher avec la variable Temp comme valeur :
response.write ("<form method='post' action='excel.asp'> <input type ='hidden' value='"&Temp&"' name='tempp' id='tempp'></br> <input type='submit' value='Exportez' /></form>")
on termine notre premiere page en refermant les balise encore ouverte:
%>
</body>
</html>
Ensuite dans la page excel.asp, j'ai juste 2 lignes :
<% Response.ContentType = "application/vnd.ms-excel" %> 'pour dire a IE que je renvoie un fichier excel et pas une page web
<% response.write (Request.Form("tempp"))%> 'on "affiche" juste le contenu de la variable Temp qui contient en fait le tableau html créer a la page precedente
Et voila, si excel est instaler sur votre PC client, IE vous proposera d'ouvrir ou de sauvegarder un fichier excel.xsl
Voila....
bonne chance a tous....
Alors vu que sa ma bien souler tout sa, je la met ici des fois que sa interresserais quelqu'un :
Dans une premiere page .asp, je fais :
en premiere ligne :
<%@ LANGUAGE="VBScript" %>
déclaration des variables :
<%
Dim serverAdresse 'adresse du serveur
Dim user 'utilisateur
Dim password 'mot de passe
Dim nomBase 'nom de la base a utiliser
Dim Maconnexion 'objet connexion
Dim conn
Dim nbcol un recordset
%>
entete de page html :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>nomdemapage</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="css.css" />
</head>
<body>
On ce connecte a la base de données et on fait notre requete sql:
<%
'Parametre de connection a la base
serverAdresse = "blabla" 'adresse du serveur
user = "user" 'utilisateur
password = "password" 'mot de passe
nomBase = "maBase" 'nom de la base a utiliser
'Ouverture de la connection
Set Maconnexion = Server.CreateObject("ADODB.Connection")
conn = "driver={SQL Server};server="& serverAdresse &";db=" & nomBase & ";user id=" & user & ";pwd=" & password
Maconnexion.open conn
'requete sql
set nbcol = server.CreateObject("ADODB.Recordset")'on crer l'objet recordset
nbcol.open "SELECT nom,prenom,lieu FROM maTable WHERE nom = 'Martin' AND lieu = 'bureau' ORDER BY nom, prenom", Maconnexion, 3, 3, 1 'on execute la requete sql
On creer un tableau html dans la variable Temp a partir des lignes de la requete (le recordset):
nbcol.movefirst'on ce place sur le 1ere enregistrement du recordset
Temp = Temp &"<TABLE BORDER=1><TR>"
Temp = Temp &"<TD><B>Fonction</B></TD>"
Temp = Temp &"<TD><B>Etat</B></TD>"
Temp = Temp &"<TD><B>Plage Horaire</B></TD>"
Temp = Temp &"</TR>"
DO while Not nbcol.EOF 'tant que on est pas a la fin des enregistrements
Temp = Temp &"<TR>"
Temp = Temp &"<TD>" & nbcol("nom") & "</TD>"
Temp = Temp &"<TD>" & nbcol("prenom") & "</TD>"
Temp = Temp &"<TD>" & nbcol("lieu") & "</TD>"
Temp = Temp &"</TR>"
nbcol.movenext 'on pas a l'enregistrement suivant
LOOP 'fin de la boucle
nbcol.Close 'on referme l'objet recordset
Set nbcol=Nothing 'on le met a rien pour liberer de la memoire
Temp = Temp &"</TABLE>"
On crer un formulaire avec un bouton qui appel une autre page (ici excel.asp) et un champ cacher avec la variable Temp comme valeur :
response.write ("<form method='post' action='excel.asp'> <input type ='hidden' value='"&Temp&"' name='tempp' id='tempp'></br> <input type='submit' value='Exportez' /></form>")
on termine notre premiere page en refermant les balise encore ouverte:
%>
</body>
</html>
Ensuite dans la page excel.asp, j'ai juste 2 lignes :
<% Response.ContentType = "application/vnd.ms-excel" %> 'pour dire a IE que je renvoie un fichier excel et pas une page web
<% response.write (Request.Form("tempp"))%> 'on "affiche" juste le contenu de la variable Temp qui contient en fait le tableau html créer a la page precedente
Et voila, si excel est instaler sur votre PC client, IE vous proposera d'ouvrir ou de sauvegarder un fichier excel.xsl
Voila....
bonne chance a tous....