导出嵌套的Gridview空白单元格错误

时间:2015-11-26 14:16:36

标签: c# asp.net excel gridview

我遵循了这个指南:Export Multi-Level Nested GridView to Excel using OpenXml in ASP.Net

并修改了我的案例代码如下:

 protected void ExportExcel(object sender, EventArgs e)
    {
        var dt = new DataTable("GridView_Data");
        grvPayroll.AllowPaging = false;
        var grvPayrollDetails = new GridView();
        for (var i = 0; i < grvPayroll.Rows.Count; i++)
        {
            grvPayrollDetails = (GridView) grvPayroll.Rows[i].FindControl("grvPayrollDetails");
            grvPayrollDetails.AllowPaging = false;
        }
        foreach (TableCell cell in grvPayrollDetails.HeaderRow.Cells)
        {
            if (cell.Text != "&nbsp;")
            {
                dt.Columns.Add(cell.Text);
            }
        }

        foreach (GridViewRow row in grvPayroll.Rows)
        {
            var grvPayrollDetailscell = (row.FindControl("grvPayrollDetails") as GridView);
            for (var j = 0; j < grvPayrollDetailscell.Rows.Count; j++)
            {
                dt.Rows.Add(row.Cells[1].Text, row.Cells[2].Text, grvPayrollDetailscell.Rows[j].Cells[1].Text,
                    grvPayrollDetailscell.Rows[j].Cells[2].Text);
            }
        }

        using (var wb = new XLWorkbook())
        {
            wb.Worksheets.Add(dt);

            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "";
            Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            Response.AddHeader("content-disposition", "attachment;filename=GridView.xlsx");

            using (var MyMemoryStream = new MemoryStream())
            {
                wb.SaveAs(MyMemoryStream);
                MyMemoryStream.WriteTo(Response.OutputStream);
                Response.Flush();
                Response.End();
            }
        }
    }

没有发生错误,但导出文件只包含标题,所有单元格都为空。导出excel文件,其中包含标题名称和行数。为什么?请帮忙! 这是图片: Exported File

0 个答案:

没有答案