2010-10-05 4 views
0

en utilisant 3,5 asp.net Je suis en train de générer une feuille de calcul et la façon dont Excel au format que je fais est:Exporter vers Excel à l'aide Response.TransmitFile()

1.Format la feuille Excel avec des données 2 .Enregistrez-le en tant que xml spreadhseet 3.Affichez-le dans le bloc-notes/le pavé de texte et supprimez les "données" du fichier XML et disposez d'un contenu comme "DYNAMICDATA" 4.Build XML dynamique pour les données et remplacez le "DYNAMICDATA" placez-vous avec ces nouvelles données. 5.Avez tout cela dans un stringbuilder

Je m coincé ici, je veux être en mesure de Response.Write (stringbuilder) mais ça ne marche pas, je l'ai utilisé les types MIME appropriés, etc.

Cependant Response.TransmitFile() fonctionne quand je viens de transmettre une feuille de calcul xml au navigateur. mais Response.TransmitFile() prend un fichier en tant qu'argument, je peux créer un fichier temporaire écrire le xml créé, puis transmettre, mais cela semble juste une surcharge lourde.

Y at-il un moyen que je peux sans créer un fichier, transmettez simplement transmitXml() en utilisant le contenu stringbuilder et laissez l'utilisateur enregistrer la feuille de calcul.

merci,

Répondre

1

Peut-être que cela va vous aider. mettre dans votre code:

Response.AppendHeader("Content-Type", "application/ms-excel"); 
Response.AppendHeader("Content-disposition", "attachment; filename=Rep.xls"); 
Response.Charset = ""; 

Utilisez ensuite votre:

Response.Write(stringbuilder); 

Ne pas oublier:

Response.End();