ASP.NET - CRÉÉ UN FICHIER EXCEL EN DYNAMIQUE (SOUS FORME DE FLUX) AVEC ASP.NET
bleroy
Messages postés2Date d'inscriptionjeudi 14 novembre 2002StatutMembreDernière intervention14 novembre 2002
-
14 nov. 2002 à 10:10
alex91270
Messages postés1Date d'inscriptionjeudi 22 mai 2003StatutMembreDernière intervention12 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.
alex91270
Messages postés1Date d'inscriptionjeudi 22 mai 2003StatutMembreDernière intervention12 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.
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és14Date d'inscriptionmercredi 30 novembre 2005StatutMembreDernière intervention15 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és1765Date d'inscriptionjeudi 12 octobre 2000StatutMembreDernière intervention11 décembre 20135 12 déc. 2005 à 18:54
dimkhas
Messages postés14Date d'inscriptionmercredi 30 novembre 2005StatutMembreDernière intervention15 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és1765Date d'inscriptionjeudi 12 octobre 2000StatutMembreDernière intervention11 décembre 20135 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
dimkhas
Messages postés14Date d'inscriptionmercredi 30 novembre 2005StatutMembreDernière intervention15 février 2006 12 déc. 2005 à 18:14
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
dimkhas
Messages postés14Date d'inscriptionmercredi 30 novembre 2005StatutMembreDernière intervention15 février 2006 12 déc. 2005 à 18:04
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
dimkhas
Messages postés14Date d'inscriptionmercredi 30 novembre 2005StatutMembreDernière intervention15 février 2006 12 déc. 2005 à 18:00
Bonsoir
oui j'ai Excel installé sur mon poste mais je ne sais si c'est du a des pbs de droit ou pas
cs_fabrice69
Messages postés1765Date d'inscriptionjeudi 12 octobre 2000StatutMembreDernière intervention11 décembre 20135 12 déc. 2005 à 17:48
Bonsoir,
Il faut que Excel soit installé sur votre poste
Cordialement
Romelard Fabrice
dimkhas
Messages postés14Date d'inscriptionmercredi 30 novembre 2005StatutMembreDernière intervention15 février 2006 12 déc. 2005 à 17:19
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
cs_fabrice69
Messages postés1765Date d'inscriptionjeudi 12 octobre 2000StatutMembreDernière intervention11 décembre 20135 22 août 2005 à 15:45
On insère pas une image mais ajoute une URL pour cette image dans le flux HTML.
Cordialement
Romelard Fabrice
sev622
Messages postés62Date d'inscriptionjeudi 10 mars 2005StatutMembreDernière intervention12 septembre 2005 22 août 2005 à 15:15
bonne méthode, facile à mettre en place, mais est-il possible d'insérer une image dans le flux ?
bleroy
Messages postés2Date d'inscriptionjeudi 14 novembre 2002StatutMembreDernière intervention14 novembre 2002 14 nov. 2002 à 10:10
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
12 déc. 2005 à 18:14
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
12 déc. 2005 à 18:04
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
12 déc. 2005 à 18:00
oui j'ai Excel installé sur mon poste mais je ne sais si c'est du a des pbs de droit ou pas
12 déc. 2005 à 17:48
Il faut que Excel soit installé sur votre poste
Cordialement
Romelard Fabrice
12 déc. 2005 à 17:19
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
22 août 2005 à 15:45
Cordialement
Romelard Fabrice
22 août 2005 à 15:15
14 nov. 2002 à 10:10