Im System kommt es häufig vor, dass der Excel-Stream generiert und an den Benutzer gestreamt wird.
Im
Allgemeinen
können Sie Response verwenden, um einen HTTP-Header an den Client zu senden und den Excel-Stream zu
senden Problem
Der Hauptgrund dafür, dassdas Dialogfeld zum Herunterladen der Datei beim Klicken zum Öffnen zweimal angezeigt wird, ist
: (derzeitige Vermutung, der genaue Grund wurde noch nicht gefunden).
Beim ersten Öffnen ist die temporäre Datei des Excel-Streams bereits im System vorhanden (es ist die Datei ohne Dateierweiterung), es gibt jedoch keine Originaldatei (die echte Datei existiert). um die temporäre Datei an anderen Orten auf dem Computer zu speichern. (Hängt es mit dem fehlenden Suffixnamen zusammen?)
Wählen Sie beim zweiten Mal den Speicherort der Clientdatei aus und ob Sie sie an einem anderen, nicht temporären Ordnerspeicherort speichern möchten.
Die aktuelle Lösung besteht darin,
eine neue Seite speziell für die Bereitstellung exportierter Daten zu erstellen
Schreiben Sie Code wie diesen in Page_load auf dieser Seite
private void Page_Load(object sender, System.EventArgs e)
{
//Geben Sie hier den Benutzercode ein, um die Seite zu initialisieren
ReportRule reportRule=new ReportRule();
byte[] result= reportRule.RenderReport(HttpContext.Current.Server.UrlDecode(this.Request.QueryString["peportpath"]),Request.QueryString["id"]); //Excel-Stream generieren
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
HttpContext.Current.Response.AppendHeader
("Content-disposition",attachment;filename=hahh.xls");
(Ergebnis);
HttpContext.Current.Response.End(
}