2017-04-10 2 views
0

J'utilise la classe Excel Helper pour générer une feuille Excel avec chaque table de données dans l'ensemble de données sous forme de feuille de calcul dans Excel.Réponse HTTP - Fichier Excel - Enregistrer sur le disque

Je suis en mesure d'obtenir l'Excel avec plusieurs feuilles de calcul, mais est-il possible de l'enregistrer à un emplacement directement à partir du code.

Comme l'excel télécharge directement quand je cours le code et je dois l'enregistrer manuellement.S'il vous plaît conseiller.

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); 

Répondre

0

Si vous définissez response.ContentType = "application/octet-stream" il y a une chance que le navigateur offrira pour enregistrer le fichier. Le navigateur peut inspecter le début du fichier et décider qu'il s'agit d'un fichier Excel et, selon ce que l'utilisateur a choisi de faire, l'ouvrir quand même.

De plus, vous devez entourer le nom de fichier par des guillemets.

Vous ne pouvez pas obtenir le navigateur pour enregistrer à un emplacement particulier - ce serait ouvert à l'abus.