2017-04-10 2 views
0

Ich verwende Excel Helper-Klasse, um ein Excel-Blatt mit jeder Datentabelle in Datensatz als ein Arbeitsblatt in Excel zu generieren.HTTP-Antwort - Excel-Datei- Auf Festplatte speichern

Ich kann das Excel mit mehreren Arbeitsblättern erhalten, aber gibt es eine Möglichkeit, dies an einem Speicherort direkt aus dem Code zu speichern.

Da die Excel-Downloads direkt, wenn ich den Code ausführen und ich manuell speichern müssen. Bitte beraten.

public static void ToExcel(DataSet dsInput, string filename, HttpResponse response) 
    { 
     var excelXml = GetExcelXml(dsInput, filename); 
     response.Clear(); 
     response.AppendHeader("Content-Type", "application/vnd.ms-excel"); 
     response.AppendHeader("Content-disposition", "attachment; filename=" + filename); 
     response.Write(excelXml); 
     response.Flush(); 
     response.End(); 
    } 


    Using the helper class to genrate Dataset into multiple tabs // 
     try 
     { 

      ds = obj.Get_Tables(); 
     } 
     ExcelHelper.ToExcel(ds, "AlertDetails.xls", Page.Response); 

Antwort

0

Wenn Sie response.ContentType = "application/octet-stream" dort festgelegt ist eine faire Chance, dass der Browser die Datei speichern bieten. Der Browser prüft möglicherweise den Start der Datei und entscheidet, dass es sich um eine Excel-Datei handelt, und öffnet sie, je nachdem, was der Benutzer gewählt hat.

Außerdem sollten Sie den Dateinamen mit doppelten Anführungszeichen umgeben.

Sie kann nicht erhalten Sie den Browser an einem bestimmten Speicherort zu speichern - das wäre offen zu missbrauchen.

Verwandte Themen