【问题标题】:Export to excel is exporting check box to excel instead of string导出到 excel 正在将复选框导出到 excel 而不是字符串
【发布时间】:2017-08-19 17:08:32
【问题描述】:
GridView grdExgratia = new GridView();
DataSet ds = (DataSet)Session["DataSet"];

try
{
    if (ds != null && ds.Tables[0].Rows.Count > 0)
    {
        grdExgratia.DataSource = ds;
        grdExgratia.DataBind();

        for (int i = 0; i < grdExgratia.Rows.Count; i++)
        {
            DataGridItem dataItem = dgExgratia.Items[i];
            CheckBox chkApprove = (CheckBox)dataItem.FindControl("chkApprove");
            Label lblB_FLAG = (Label)dataItem.FindControl("lblB_FLAG");

            if (chkApprove.Enabled== true)
            {
                lblB_FLAG.Text = "Paid";
            }
            else
            {
            }
        }

        Response.Clear();
        Response.Buffer = true;
        Response.ClearContent();
        Response.ClearHeaders();
        StringWriter strwritter = new StringWriter();
        HtmlTextWriter htmltextwrtter = new HtmlTextWriter(strwritter);
        Response.ContentType = "application/vnd.ms-excel";
        Response.AddHeader("Content-Disposition", "attachment;filename= Exgratia_Employees.xls");
        grdExgratia.RenderControl(htmltextwrtter);
        Response.Write(strwritter.ToString());
        Response.End();
    }
}

以上是我用于导出到 excel 的代码。但是在导出数据时,最后一列是 B_FLAG,它是数据库中的 BIT 数据类型,它被转换为复选框。在网格视图中显示数据时,它呈现为 TRUE 和 FALSE。谁能帮我将文本值导出到excel而不是复选框。

【问题讨论】:

  • 检查控件的名称
  • @reds 我检查了仍然无法正常工作。你能建议任何其他方式吗?
  • 您的 StringWriter strwritter 与您的 for 循环没有任何关系,您也没有任何 StringBuilder ..

标签: c# asp.net sql-server-2008 datagridview


【解决方案1】:

因为如果要将网格设置为 true 或 false,则应将其渲染为 excel,因此您应该获取数据源并操作数据。例如,根据您的“chkApprove”布尔值为“true”和“false”添加新行,然后导出。

【讨论】:

    猜你喜欢
    • 2012-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多