2014-02-28 41 views
0

您好我正在处理asp网络应用程序。在这里,我需要将网格数据导出到Excel,最后将excel文件保存为zip文件。我不想先将Excel文件保存在某个位置,然后使用zip功能获取该文件并将其转换为Zip并保存。我想要直接将网格转换为Excel然后Zip然后最终保存它的功能。我见过这么多形式和网站,但没有给出正确答案。将网格数据导出到Excel并将其保存为zip格式

+0

什么版本的Excel中,你定位? – MikeH

+0

Excel 97-2003格式 – user2864496

回答

1

您可以通过dot.net邮编DLL做到这一点,下面的代码将帮助您

gv.AllowPaging = false; 
      Response.ClearContent(); 
      Response.AddHeader("content-disposition", "attachment; filename=" + strFileName); 
      Response.ContentType = "application/zip"; 
      System.IO.StringWriter sw = new System.IO.StringWriter(); 
      HtmlTextWriter htw = new HtmlTextWriter(sw); 
      gv.RenderControl(htw); 
      // byte[] toBytes = Encoding.ASCII.GetBytes(somestring); 
      MemoryStream stream = new MemoryStream(); 
      string attachment = sw.ToString(); 
      byte[] data = Encoding.ASCII.GetBytes(attachment); 
       stream.Write(data, 0, data.Length); 
       stream.Seek(0, SeekOrigin.Begin); // <-- must do this after writing the stream! 
      // File.WriteAllBytes(@"D:\Saurabh\Testing\inputpdf\saurabhhtest.xls", stream.GetBuffer()); 



     using (ZipFile zipFile = new ZipFile()) 
     { 
      zipFile.AddEntry("saurabhtest1.xls", stream); 
      zipFile.Save(Response.OutputStream); 
     } 
相关问题