Dans le système, il arrive souvent que le flux Excel soit généré et que l'Excel généré soit diffusé à l'utilisateur.
De manière générale,
vous pouvez utiliser Response pour envoyer un en-tête HTTP au client et envoyer le flux Excel.
Mais
il y aura un. problème.
La principale raison pour laquellela boîte de dialogue de téléchargement de fichier apparaît deux fois lorsque vous cliquez pour ouvrir est
: (estimation actuelle, la raison exacte n'a pas encore été trouvée).
Lors de la première ouverture, le fichier temporaire du flux Excel existe déjà dans le système (c'est le fichier sans l'extension de fichier), mais il n'y a pas d'original (le vrai fichier existe). Il est demandé à l'utilisateur si). pour enregistrer le fichier temporaire sur l'ordinateur dans d'autres positions. (Est-ce lié à l'absence de suffixe de nom ?)
La deuxième fois, sélectionnez l'emplacement du fichier client et s'il faut l'enregistrer dans un autre emplacement de dossier non temporaire.
La solution actuelle consiste
à créer une nouvelle page spécifiquement pour fournir les données exportées
Écrivez du code comme celui-ci dans Page_load dans cette page
private void Page_Load (expéditeur d'objet, System.EventArgs e)
{
// Mettez le code utilisateur ici pour initialiser la page
ReportRule reportRule=new ReportRule();
byte[] result= reportRule.RenderReport(HttpContext.Current.Server.UrlDecode(this.Request.QueryString["peportpath"]),Request.QueryString["id"]); //Générer un flux Excel
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
HttpContext.Current.Response.AppendHeader
("Content-disposition","attachment;filename=hahh.xls");
(résultat);
HttpContext.Current.Response.End(
}