Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/08/2007, 11h13   #1
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 39
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juin 2007
Messages : 39
Points : 11
Points : 11
Par défaut exporter requete access vers fichier excel

Bonjour,

Je développe un application Web en asp.
Je souhaite exporter certaines requêtes issues d'une base de données access vers un fichier excel.

Je n'ai pas trouver de script qui correspond à ma volonté.
Si quelqu'un peut m'aider...

pmax35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2007, 13h50   #2
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 39
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juin 2007
Messages : 39
Points : 11
Points : 11
J'ai recherché sur le Web. Je sais que c'est possible.
Mais nulle part je n'ai trouvé de script ?!?!
pmax35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2007, 00h52   #3
Membre chevronné
 
Avatar de ryan
 
Inscription : juin 2003
Messages : 766
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 766
Points : 760
Points : 760
Yop!

Voici comment créer un fichier xls sur le serveur et écrire une valeur numérique dans la premier cellule de la première ligne, et une valeur alphanumérique dans la seconde cellule de la première ligne
Code :
1
2
3
4
5
6
7
8
9
10
 
 
    set fsob = Server.CreateObject("Scripting.FileSystemObject")
    set xls = fsob.CreateTextFile("test.xls")    
    xls.writeLine "ID;PWXL;N;E" 
    xls.writeLine "C;Y1;X1;K" & "100"    
    xls.writeLine "C;Y1;X2;K" & chr(34) & "ceci est du texte" & chr(34)
    xls.writeLine "E"
    set xls = Nothing
    set fsob = Nothing
ryan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2007, 14h27   #4
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 39
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juin 2007
Messages : 39
Points : 11
Points : 11
Par défaut Erreur d'exécution Microsoft VBScript

Merci Ryan de t'intéresser à mon problème.

Le serveur plante au CreateTextFile... (J'ai fait un copier/coller de ton exemple)
"Erreur d'exécution Microsoft VBScript"

Je suis en train de chercher la cause de ce plantage...
pmax35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2007, 15h23   #5
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 39
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juin 2007
Messages : 39
Points : 11
Points : 11
C'était simplement un problème d'URL.
En effet le server attends un chemin non relatif.

Code :
set xls = fsob.CreateTextFile(server.mappath("test.xls"),true,false)
Merci beaucoup Ryan.

Maintenant mon problème est de uploader ce fichier coté client...
par exemple si je remplace "server.mappath('test.xls')" par "C:\Documents and Setting\test.xls" ca ne marche pas
pmax35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2007, 15h41   #6
Membre chevronné
 
Avatar de ryan
 
Inscription : juin 2003
Messages : 766
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 766
Points : 760
Points : 760
Yop!

Sorry pour le chemin d'accès, j'avais simplifié le code en oubliant ce détail.

Au client, tu proposes un lien vers le fichier xls en demandant d'utiliser le clic droit et l'option "enregistrer sous".
ryan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2007, 15h41   #7
Membre actif
 
Inscription : avril 2004
Messages : 202
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : avril 2004
Messages : 202
Points : 192
Points : 192
bonjour,

sinon, tu as beaucoup plus simple :
tu fais une page qui génère un tableau HTML et tu change le content-type du document ! hop, pas besoin d'XLS sur le serveur ni de doc à créer

voici un code ASP qui récupère une requête SQL (db_sql), l'exécute grâce à la chaine de connexion (db_conn) et en fait un fichier XLS (exportAccess.xls)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
dim item
db_SQL = request("db_sql")
set oRSt = server.CreateObject("ADODB.RecordSet")
Response.ContentType="Application/xls"
Response.AddHeader "Content-Disposition", "filename=exportAccess.xls;" ' le nom du fichier
oRSt.open db_SQL, db_conn, 3, 1 
if not oRst.EoF then %>
	<table><tr><%
		for each item in oRst.fields
			response.write "<td>" & item.name & "</td>"
		next %>
	</tr><%
	do while not oRst.EoF
		response.write "<tr>"
		for each item in oRst.fields
			response.write "<td>" & item.value & "</td>"
		next
		response.write "</tr>"
		oRst.MoveNext
	Loop %>
	</table><%
else %>
	<table><tr><td>Rien à exporter</td></tr></table><%
end if 
set oRst = nothing
une belle page générique, facile à réutiliser, comme je les aime.
Nico.
__________________
Nico, l'agrotic géomatic
agrotic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2007, 16h15   #8
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 39
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juin 2007
Messages : 39
Points : 11
Points : 11
Par défaut Génial!!

Les deux solutions me séduisent hmhmmm!
Je ne sais pas encore laquelle je vais choisir

Vraiment un grand merci à vous 2!!

Une dernière petite question pour toi Agrotic.
Sait-tu pourquoi lorsque que l'on veut "enregistrer-sous" le nom de la page par défaut se transforme en "_xls" (au lieu de ".xls")?
Ou
Sait-tu comment peut-on contourner ca pour enregistrer un fichier directement avec l'extension .xls?

Merci
pmax35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 00h24   #9
Membre chevronné
 
Avatar de ryan
 
Inscription : juin 2003
Messages : 766
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 766
Points : 760
Points : 760
Yop!

L'alternative au "clic droit / enregistrer sous" est d'envoyer le fichier avec l'objet response. J'ai donné le code dans la discussion "sécuriser les documents" initiée par babibel122.
ryan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 10h47   #10
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 39
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juin 2007
Messages : 39
Points : 11
Points : 11
Par défaut merci

ca fait plaisir de se sentir écouter, merci!
pmax35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 11h56   #11
Membre actif
 
Inscription : avril 2004
Messages : 202
Détails du profil
Informations personnelles :
Âge : 36

Informations forums :
Inscription : avril 2004
Messages : 202
Points : 192
Points : 192
et au final, tu as fait comment ?

Citation:
Envoyé par pmax35
Une dernière petite question pour toi Agrotic.
Sait-tu pourquoi lorsque que l'on veut "enregistrer-sous" le nom de la page par défaut se transforme en "_xls" (au lieu de ".xls")?
Ou
Sait-tu comment peut-on contourner ca pour enregistrer un fichier directement avec l'extension .xls?
ben, perso, avec mon code j'ai pas ce genre de soucis...
c'est quoi ton code ?
__________________
Nico, l'agrotic géomatic
agrotic est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/08/2007, 17h06   #12
Candidat au titre de Membre du Club
 
Inscription : juin 2007
Messages : 39
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : juin 2007
Messages : 39
Points : 11
Points : 11
Par défaut résultat

et bien écoute je m'étais résolu à choisir la solution de Ryan mais je viens de réessayer ta solution et ca marche nikel!

alors c'est toi mon élu
euh enfin c'est ta solution agrotic que je vais choisir
car beaucoup plus légère et surtout, comme tu l'as dit : générique!!!

encore merci à vous 2 pour votre altruisme

tchao
pmax35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h31.


 
 
 
 
Partenaires

Hébergement Web