如何在同一个excel文件中的不同工作表中导出两个gridviews?

我目前在我的页面上有两个GridView。 我能够导出一个gridview到excel文件。 但是对于第二个gridview,我希望它在同一个文件的另一个工作表中打开。 任何人都可以帮助我开始,并告诉我如何去做?

这是我的代码看起来像:

protected void btnExport_Click(object sender, EventArgs e) { GridView gridView = null; System.IO.StringWriter stringWrite = null; System.Web.UI.HtmlTextWriter htmlWrite = null; try { gridView = new GridView(); List<string> columns = new List<string>(); columns.Add("CREATE_AR_YN"); columns.Add("GL_DEBIT_ACCT"); columns.Add("ALLOC_METHOD"); columns.Add("CUST_NAME"); columns.Add("DEFAULT_PYMT_TERMS"); columns.Add("AR_BILL_GROUP"); BoundField bf = null; for (int i = 0; i < columns.Count; i++) { bf = new BoundField(); bf.DataField = columns[i]; bf.HeaderText = columns[i]; bf.HeaderStyle.BackColor = System.Drawing.Color.FromName("#81DAF5"); gridView.Columns.Add(bf); gridView.AutoGenerateColumns = false; } List<FMAProfile> custList = GetSelectedCustomerProfile(); gridView.DataSource = custList; gridView.DataBind(); Response.Clear(); Response.ClearHeaders(); Response.Cache.SetCacheability(HttpCacheability.Private); Response.AddHeader("content-disposition", "attachment;filename=" + "CustomerProfile" + ".xls"); Response.Charset = ""; //Response.ContentType = "application/vnd.xls"; Response.ContentType = "application/vnd.ms-excel"; //Response.Buffer = false; stringWrite = new System.IO.StringWriter(); htmlWrite = new HtmlTextWriter(stringWrite); gridView.RenderControl(htmlWrite); Response.Write(stringWrite.ToString()); Response.End(); } catch (Exception ex) { if (ex.Message.Trim().IndexOf("Thread was being aborted") == -1) { Log(ex.ToString()); } } finally { if (gridView != null) { gridView.Dispose(); gridView = null; } if (stringWrite != null) { stringWrite.Dispose(); } stringWrite = null; if (htmlWrite != null) { htmlWrite.Dispose(); } htmlWrite = null; } } 

你不是出口一个真正的XLS,但基本上是一个HTML的Excel /可以导入…

有关使用示例代码创buildExcel文件的HTML方法的一些深入信息,请参阅http://www.c-sharpcorner.com/UploadFile/kaushikborah28/79Nick08302007171404PM/79Nick.aspx

也可以在http://msdn.microsoft.com/en-us/library/Aa155477%28office.10%29.aspx查看官方文&#x6863;

我不确定你可以在HTML中创build多个工作表

创build真正的Excel文件的选项:

MS提供OpenXML SDK V 2.0(免费) – 请参阅http://msdn.microsoft.com/en-us/library/bb448854%28office.14%29.aspx

这可以读取+写入MS Office文件(包括Excel)。

另一个选项见http://www.codeproject.com/KB/office/OpenXML.aspx

如果你需要更多的像渲染,公式等,那么有不同的免费和商业图书馆,如ClosedXML , EPPlus , Aspose.Cells , SpreadsheetGear , LibXL和Flexcel等。

注意:ASP.NET不支持Office Interop(这似乎是您的项目内置的)。