1

数据表的值是

斯大林——001 和迈克尔——002。但是生成excel我得到输出为

在此处输入图像描述

在生成excel时,“0”不会出现。如何解决这种类型的场景。

代码:

if (dt.Rows.Count > 0)
{
    string filename = " ExportedData.xls";
    System.IO.StringWriter tw = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
    DataGrid dgGrid = new DataGrid();
    dgGrid.DataSource = dt;
    dgGrid.DataBind();

    dgGrid.RenderControl(hw);       
    Response.ContentType = "application/vnd.ms-excel";
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + "");
    this.EnableViewState = false;
    Response.Write(tw.ToString());
    Response.End();
}
4

3 回答 3

0

那不是您的代码的问题。这是您的 excel 配置隐藏前缀零的问题。

1. 在工具菜单上,单击选项,然后单击查看选项卡。

2.执行以下操作之一:

要在单元格中显示零 (0) 值,请选中零值复选框。

要将零值显示为空白单元格,请清除该复选框。

于 2013-03-01T16:44:12.387 回答
0

在将数据表链接到数据网格之前,您可以手动设置数据表中列的内容类型。

DataTable dt = new DataTable();
dt.Columns.Add();
dt.Columns[0].DataType = typeof(string);
于 2013-03-01T17:40:47.360 回答
0

您可以将 DataTable 中的数据存储/更新为以下格式:="001"

例子:

        DataTable dt = new DataTable();
        dt.Columns.Add("A");
        dt.Columns.Add("B");

        dt.Rows.Add(new object[] { "Name", "No" });
        dt.Rows.Add(new object[] { "Stalin", "=\"001\""});
        dt.Rows.Add(new object[] { "Micheal", "=\"002\"" });
于 2013-03-01T18:19:48.283 回答