2013-03-01 118 views
1

Datatable的值为将数据从DataTable导出到Excel 2007中

斯大林 - 001和迈克尔 - 002。但产生练成我获得输出作为

enter image description here

在产生到Excel中的“0”并不coming.how解决这一类型scenerios的。

代码:

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(); 
} 
+1

你的代码粘贴为** **文,而不是一个图像.. – 2013-03-01 16:41:33

+0

好@ TimSchmelter,我将如何得到该文件? – gpa 2013-03-01 16:45:39

+0

@SonerGönül但是那么SO不会以斜体Times New Roman格式编码! – 2013-03-01 16:46:01

回答

0

你可以存储/更新数据在数据表的格式如下:= “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\"" }); 
0

那不是你的代码有问题。 它是你的Excel配置隐藏前缀零的问题。

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

2.Do下列之一:

要显示零(0)中单元格的值,选择零个值复选框。

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

+0

多数民众赞成我认为,但我可能不配置任何东西在excel文件中,但我需要显示数据为001. – gpa 2013-03-01 17:01:54

+0

听起来像一个单元格格式问题,您将需要使用带引号的字符串为该单元格值..您可能必须对你期望'001'的行做一些解析,你可以将那个特定行的datagridview数据类型改为字符串而不是int – MethodMan 2013-03-01 17:03:55

+0

也许将内容类型设置为文本? Response.Write(“”); – CathalMF 2013-03-01 17:06:46

0

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

DataTable dt = new DataTable(); 
dt.Columns.Add(); 
dt.Columns[0].DataType = typeof(string);