[英]Export multiple gridviews to multiple excel sheets
我的网站上有3个gridview,我需要导出到excel,但是我需要每个gridview出现在不同的工作表中。
此链接将GridView导出到多个Excel工作表使用了非常相似的方法将多个gridview导出到多个Excel选项卡(工作表)
为了将多个gridviews导出到多个工作表,我使用.NET,并且下载了ClosedXML以及DocumentFormat.OpenXml.dll 。
在Web应用程序中,我没有错误,但是XLS输出为空。
有人知道我该如何解决?
你能建议其他方法吗?
先感谢您。
请检查下面的代码。
protected void btnExportBoth_Click(object sender, EventArgs e)
{
XLWorkbook wb = new XLWorkbook();
GridView[] gvExcel = new GridView[] { gv1, gv2, gv3 };
string[] name = new string[] { "gv1", "gv2", "gv3" };
for (int i = 0; i < gvExcel.Length; i++)
{
if (gvExcel[i].Visible)
{
gvExcel[i].AllowPaging = false;
gvExcel[i].DataBind();
DataTable dt = new DataTable(name[i].ToString());
for (int z = 0; z < gvExcel[i].Columns.Count; z++)
{
dt.Columns.Add(gvExcel[i].Columns[z].HeaderText);
}
foreach (GridViewRow row in gvExcel[i].Rows)
{
dt.Rows.Add();
for (int c = 0; c < row.Cells.Count; c++)
{
dt.Rows[dt.Rows.Count - 1][c] = row.Cells[c].Text;
}
}
wb.Worksheets.Add(dt);
gvExcel[i].AllowPaging = true;
}
}
Response.Clear();
Response.Buffer = true;
Response.Charset = "";
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;filename=Workbook_Name.xlsx");
using (MemoryStream MyMemoryStream = new MemoryStream())
{
wb.SaveAs(MyMemoryStream);
MyMemoryStream.WriteTo(Response.OutputStream);
Response.Flush();
Response.End();
}
}
您确定已在btnExportBoth_Click
方法上填充了gridview吗?
gvExcel[i].AllowPaging = false;
gvExcel[i].DataBind();
在btnExportBoth_Click
方法中,必须调用该方法以像在网络上一样填充gridview。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.