2014-05-21 3 views
0

Je suis très nouveau au développement asp.netComment créer un fichier Excel dans asp.net?

J'ai présenté l'utilisateur pour télécharger le asp repeater grid details en format Excel sur un clic de bouton. Je l'ai fait avec le code suivant que je suis arrivé après googler

  Response.Clear(); 
      Response.Buffer = true; 
      Response.AddHeader("content-disposition", "attachment;filename=ExcelExport.xls"); 

      for (int i = 0; i < RptMasterData.Items.Count; i++) 
      { 
       Table tbl = (Table)RptMasterData.Items[i].FindControl("tblTest"); 
       tbl.Style.Add("background-color", "#FF9900"); 
       GridView gvAllocation = (GridView)RptMasterData.Items[i].FindControl("gvAllocation"); 
       gvAllocation.HeaderRow.Style.Add("background-color", "#95c556"); 

       int j = 1; 
       foreach (GridViewRow gvrow in gvAllocation.Rows) 
       { 
        gvAllocation.BackColor = System.Drawing.Color.White; 
        if (j <= gvAllocation.Rows.Count) 
        { 
         if (j % 2 != 0) 
         { 
          for (int k = 0; k < gvrow.Cells.Count; k++) 
          { 
           gvrow.Cells[k].Style.Add("background-color", "#EFF3FB"); 
          } 
         } 
        } 
        j++; 
       } 
      } 

      Response.ContentType = "application/vnd.ms-excel"; 
      Response.ContentEncoding = System.Text.Encoding.Unicode; 
      Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble()); 

      StringWriter sw = new StringWriter(); 
      HtmlTextWriter hw = new HtmlTextWriter(sw); 

      //style to format numbers to string 
      string style = @"<style> .textmode { mso-number-format:\@; } </style>"; 
      Response.Write(style); 
      RptMasterData.RenderControl(hw); 
      Response.Write("<table>"); 
      Response.Output.Write(sw.ToString()); 
      Response.Write("<table>"); 
      Response.Flush(); 
      HttpContext.Current.ApplicationInstance.CompleteRequest(); 
      Response.Close(); 

Le fichier est téléchargé Excel file.But lorsque je tente d'ouvrir le fichier dans MS Office je reçois le message d'erreur comme

enter image description here

Le problème est survenu lorsque j'essaie de modifier et de sauvegarder le fichier dans Ms-office. il montre avertissement suivant
enter image description here

Je viens d'essayer d'ouvrir le même éditeur de texte et a constaté que le fichier téléchargé est un fichier HTML contenant les données nécessaires comme prévu ne fichier Excel.

Quelqu'un peut-il me guider dans la façon de créer un fichier Excel réel pour le téléchargement lorsque l'utilisateur clique « Télécharger »

Répondre

2

Codeplex EPPlus http://epplus.codeplex.com/ est bon liberary pour créer un document de feuille de calcul dans le serveur

+0

+1 pour le EPPlus impressionnant . –

Questions connexes