[英]How to export two gridviews in same excel file on different worksheets?
我的页面上目前有两个gridviews。 我可以将一个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,而是基本上是Excel可以/可以导入的HTML ...
有关使用示例代码创建Excel文件的HTML方法的一些深入信息,请参见http://www.c-sharpcorner.com/UploadFile/kaushikborah28/79Nick08302007171404PM/79Nick.aspx
还可以在http://msdn.microsoft.com/zh-cn/library/Aa155477%28office.10%29.aspx上查看官方文档。
我不太确定您可以用HTML创建多个工作表...
创建真实Excel文件的选项:
MS提供了OpenXML SDK V 2.0(免费)-请参见http://msdn.microsoft.com/zh-cn/library/bb448854%28office.14%29.aspx
这可以读写MS Office文件(包括Excel)。
另一种选择,请参见http://www.codeproject.com/KB/office/OpenXML.aspx
如果您需要更多的渲染,公式等内容,那么这里有不同的免费和商业库,如ClosedXML , EPPlus , Aspose.Cells , SpreadsheetGear , LibXL和Flexcel等。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.