在Mail中附加excel时检索空白Excel

Alb*_*ure 5 c# asp.net email

我使用此代码从gridview发送带有excel附件的邮件,它适用于邮件部分,但excel附件始终为空白我已调试代码并确保Gridview的数据源将所需的数据传递给gridview ,似乎我没有渲染gridview权利.整个过程是针对每个循环,取决于foreach中的元素数量.

我错过了一些代码吗?

protected void MailButton_Click(object sender, EventArgs e)
{
    List<FOAM> foamList = new List<FOAM>(servs.GetAreaList());
    foreach (FOAM foam in foamList)
    {
        Session["Area"] = foam.ItemAreaCode;
        Session["Principal"] = foam.PrincipalAmount;
        Session["Accountability"] = foam.AccountableAmount;
        Session["Count"] = foam.ItemCount;

        foamdetails.ItemAreaCode = foam.ItemAreaCode;
        FOAMTemplateGridview.DataSource = servs.GetFoamAsOfUnsettledforAOM(foamdetails);
        FOAMTemplateGridview.DataBind();

        StringWriter _writer = new StringWriter();
        HttpContext.Current.Server.Execute("AreaManagersMail.aspx", _writer);

        StringWriter stw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(stw);
        FOAMTemplateGridview.RenderControl(hw);

        MailMessage newMail = new MailMessage();
        newMail.Priority = MailPriority.High;
        newMail.To.Add("test@test.com");
        newMail.Subject = "Unsettled FOAM As of " + DateTime.Today.ToString("MMMM dd, yyyy") + "-A" + foam.ItemAreaCode;

        System.Text.Encoding Enc = System.Text.Encoding.ASCII;
        byte[] mBArray = Enc.GetBytes(stw.ToString());
        System.IO.MemoryStream mAtt = new System.IO.MemoryStream(mBArray, false);

        newMail.Attachments.Add(new Attachment(mAtt, "test.xls"));
        newMail.Body = _writer.ToString();
        newMail.From = new MailAddress("test@test.com");
        newMail.IsBodyHtml = true;
        SmtpClient SmtpSender = new SmtpClient();
        SmtpSender.Port = 25;
        SmtpSender.Host = "MailHost";
        SmtpSender.Send(newMail);

        newMail.Dispose();
    }


}
Run Code Online (Sandbox Code Playgroud)