ASP.NET - CRÉÉ UN FICHIER EXCEL EN DYNAMIQUE (SOUS FORME DE FLUX) AVEC ASP.NET

bleroy
Messages postés
2
Date d'inscription
jeudi 14 novembre 2002
Statut
Membre
Dernière intervention
14 novembre 2002
- 14 nov. 2002 à 10:10
alex91270
Messages postés
1
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
12 mars 2009
- 12 mars 2009 à 19:44
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/8935-asp-net-cree-un-fichier-excel-en-dynamique-sous-forme-de-flux-avec-asp-net

alex91270
Messages postés
1
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
12 mars 2009

12 mars 2009 à 19:44
Le "Response.ContentType = "application/vnd.ms-excel"" sert à tromper le navigateur sur la nature du contenu que le serveur lui renvoit.

Si l'on met ce code derriere un boutton dans une page asp, la boutton provoque un postback, le serveur renvoit sa page au client qui la voit comme un fichier excel et le télécharge, mais excel ne peut pas l'ouvrir, car si on édite ce fichier avec notepad, on voit que le fichier XLS contient :
1) les données que l'on a rajouté avec le response.write
2) L'intégralité du code de la page ASP.

Alors voilà comment j'ai fait:
- Sur ma page de départ, derrière mon boutton, je stocke dans une variable de session les données qui devront composer mon fichier excel, puis j'appelle une page "export.aspx" toute vide, qui contient uniquement dans son pageload le response.write / response.contenttype.

Voir ci-dessous:

Derriere le bouton de ma page:

Temp = "\"
Temp &= \"Nom Prenom, \"
Temp &= \"\"
Temp &= \"----
\"
Temp &= \"" & MaLigne("NomPrenom") & ", \"
Temp &= \"\"
Temp &= "
"

session("exptmp") = temp
response.redirect ("export.aspx")

Dans export.aspx:

<script runat="server">

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Response.Write(Session("exptmp"))
Response.ContentType = "application/vnd.ms-excel"
End Sub
</script>


Certainement d'autres facons de faire, en tous cas celle-ci marche.
dimkhas
Messages postés
14
Date d'inscription
mercredi 30 novembre 2005
Statut
Membre
Dernière intervention
15 février 2006

12 déc. 2005 à 19:08
Bonsoir
Ce k'on veut c'est générer directement un fichier txt.
Voici le code qu' on a :
Response.ContentType = "text/plain"
Response.Write(Temp)
Mais il ne nous ouvre pas un fichier txt.
Peux tu nous aider là dessus.
merçi
cs_fabrice69
Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Membre
Dernière intervention
11 décembre 2013
5
12 déc. 2005 à 18:54
Il y a plusieurs content type suivant les versions d'Excel, vous pouvez en trouver une liste ici, à tester dans votre cas :
- http://www.henri-ruch.ch/ASP/Type_contenu/type_contenu.asp

Fabrice
dimkhas
Messages postés
14
Date d'inscription
mercredi 30 novembre 2005
Statut
Membre
Dernière intervention
15 février 2006

12 déc. 2005 à 18:47
Bonsoir
Peut être donc on a un pb de configuration.Est ce ke tu peux nous aider à configurer les Mime ContentType correctement dans notre poste.
Cordialement
cs_fabrice69
Messages postés
1765
Date d'inscription
jeudi 12 octobre 2000
Statut
Membre
Dernière intervention
11 décembre 2013
5
12 déc. 2005 à 18:30
Bonsoir,

Ce type de demande correspond tout à fait à ce que fait ce script. Il propose à l'utilisateur de télécharger le fichier généré.
Dans le cas ou le poste client a les Mime ContentType correctement configurés, l'ouvre automatiquement.
Cordialement
Romelard Fabrice
Afficher les 13 commentaires