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.
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.
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
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
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
Bonsoir
ce ke je veux faire réellement c'est générer un fichier txt coté client. Et lui s'il veut il l'enregistre sur son poste ou pas.Mais je ne veux pas que le fichier généré soit enregistré sur mon serveur.
merçi de ton soutien
Bonsoir
Moi je voulais directement ouvrir le fichier excel. Mais il me propose l'ecran de téléchargement. Aprés le téléchragemenr du fichier je n'arrive pas à l'ouvrir.
Moi je voulais plutôt générer un .txt. il m'affiche le contenu sur le meme formulaire au lieu de créer un fichier txt. je me suis je vais voir si je peux générer un fichier excel mais là aussi il y'a blocage.
Merçi de ton soutien
Bonjour
merçi beaucoup de votre, trés simple et facile à comprendre. Mais cependant quand je l'ai intégré dans mon programme pour générer le fichier, soit il me propose directement le téléchargement ou bien il m'affiche un message d'erreur m'indiquant que le contenu ne peut pas être lu.
Pouvez m'aider et me dire à qo=uoi est dû cette erreur.
merçi
Attention! L'utilisation de concaténations de chaînes pour monter le tableau devient vite catastrophique... Il faut absolument dans ce genre de cas utiliser un StringBuilder, ou mieux, surcharger Render et utiliser les méthodes de génération d'HTML spécifiques, tellement plus propres. On ne le répètera jamais assez, les chaînes de caractères sont immuables et de nombreuses concaténations sont toujours catastrophiques pour les performances.
12 mars 2009 à 19:44
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.
12 déc. 2005 à 19:08
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
12 déc. 2005 à 18:54
- http://www.henri-ruch.ch/ASP/Type_contenu/type_contenu.asp
Fabrice
12 déc. 2005 à 18:47
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
12 déc. 2005 à 18:30
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