如何从数据表中创build多个Excel文件,并使用dotnet zip在asp.net中以zip格式下载它们

我正在编写一个程序,通过它我必须下载一个包含多个Excel文件的压缩文件,比如a.xls,b.xls等

我正在使用FOR循环来获取数据中的数据。

现在我想用这个数据导出Excel文件作为压缩文件。

下面是我正在使用的代码,并试图使用内存stream来完成这一点:

string[] filetype = { "A", "B", "C", "D", "F", "G", "H" }; using (var db = new WOFFEntities()) { for (int i = 0; i < filetype.Length; i++) { string strFileType = Convert.ToString(filetype[i]); var str = db.EXPORTROCFILEREPORTs.Where(x => x.MONTHYEAR == monthYear && x.FILETYPE == strFileType).ToList(); DataTable dtExcel = new DataTable(); DataColumn dc = new DataColumn("MonthYear", typeof(String)); dtExcel.Columns.Add(dc); dc = new DataColumn("FileType", typeof(String)); dtExcel.Columns.Add(dc); dc = new DataColumn("Accoount Number", typeof(String)); dtExcel.Columns.Add(dc); dc = new DataColumn("Invoice Number", typeof(String)); dtExcel.Columns.Add(dc); dc = new DataColumn("Account Balance", typeof(String)); dtExcel.Columns.Add(dc); dc = new DataColumn("No Contribution", typeof(String)); dtExcel.Columns.Add(dc); dc = new DataColumn("Date of Invoice", typeof(String)); dtExcel.Columns.Add(dc); dc = new DataColumn("IVAT Invoice Amount", typeof(String)); dtExcel.Columns.Add(dc); dc = new DataColumn("Invoice Amount", typeof(String)); dtExcel.Columns.Add(dc); dc = new DataColumn("VAT", typeof(String)); dtExcel.Columns.Add(dc); dc = new DataColumn("Client Name", typeof(String)); dtExcel.Columns.Add(dc); for (int j = 0; j < str.Count; j++) { DataRow dr = dtExcel.NewRow(); AddRowsToExcelTable(dr, j, str); dtExcel.Rows.Add(dr); } gvFiles.DataSource = dtExcel; gvFiles.DataBind(); try { pnl.Visible = true; System.IO.StringWriter sw = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw); pnl.RenderControl(htw); using (MemoryStream memoryStream = new MemoryStream()) { HtmlTextWriter writer = .GetInstance(, memoryStream); pdfDoc1.Open(); htmlparser.Parse(sr); pdfDoc1.Close(); byte[] bytes = memoryStream.ToArray(); memoryStream.Close(); File.WriteAllBytes(folderPath + "\\" + fileName + "_" + DateTime.Now + ".pdf", bytes); } } Response.ClearContent(); Response.Buffer = true; Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "VDF_'" + monthYear + strFileType + "'.xls")); Response.ContentType = "application/ms-excel"; 

请帮助我。

谢谢。