Asp.net 将datagrid导出到excel时前导零出现问题

Asp.net 将datagrid导出到excel时前导零出现问题,asp.net,Asp.net,我正在从数据库绑定DataGrid并尝试将其导出到Excel,但第一列的前导零(包含策略编号)有问题,假设数据库策略编号为“012345678”,但当我将其导出到Excel时,它显示为“12345678” 我的代码如下: public static void ToExcelWithHeader(DataSet dsInput, string filename,HttpResponse response, string HeaderPart, DataTable dt, string Url =

我正在从数据库绑定DataGrid并尝试将其导出到Excel,但第一列的前导零(包含策略编号)有问题,假设数据库策略编号为“012345678”,但当我将其导出到Excel时,它显示为“12345678”

我的代码如下:

public static void ToExcelWithHeader(DataSet dsInput, string filename,HttpResponse response, string HeaderPart, DataTable dt, string Url = "")
{
    DataGrid dg = new DataGrid();
    dg.DataSource = dsInput.Tables[0];
    dg.DataBind();
    response.ClearContent();
    response.Buffer = true;

    response.AddHeader("content-disposition", "attachment; filename=" + filename);
    response.ContentType = "application/vnd.ms-excel";

    System.IO.StringWriter objSW = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter objHTW = new System.Web.UI.HtmlTextWriter(objSW);

    dg.HeaderStyle.Font.Bold = true;     // SET EXCEL HEADERS AS BOLD.

     //STYLE THE SHEET AND WRITE DATA TO IT.
    response.Write("<style>");
    response.Write("TABLE { border:dotted 1px #999; }");
    response.Write("TD { border:dotted 1px #D5D5D5; text-align:center; vertical-align: top; }");
    response.Write(".table { background-color: yellow; text-align: left; vertical-align: top; }");
    response.Write("</style>");

    response.Write(HeaderPart);

    response.Write(objSW.ToString());
    if (Url != "")
        response.AddHeader("Refresh", "3; url=" + Url);
    response.End();


    dg = null;
        }
    }
    catch { }
}
publicstaticvoid-ToExcelWithHeader(数据集dsInput,字符串文件名,HttpResponse响应,字符串HeaderPart,数据表dt,字符串Url=”“)
{
DataGrid dg=新DataGrid();
dg.DataSource=dsInput.Tables[0];
dg.DataBind();
response.ClearContent();
response.Buffer=true;
response.AddHeader(“内容处置”、“附件;文件名=“+filename”);
response.ContentType=“application/vnd.ms excel”;
System.IO.StringWriter objSW=新的System.IO.StringWriter();
System.Web.UI.HtmlTextWriter objHTW=新的System.Web.UI.HtmlTextWriter(objSW);
dg.HeaderStyle.Font.Bold=true;//将EXCEL标题设置为粗体。
//设置工作表的样式并向其写入数据。
回答。写(“”);
response.Write(“表{边框:虚线1px#999;}”);
回答:写(“TD{边框:点1px#d5d5;文本对齐:中心;垂直对齐:顶部;}”);
写(“.table{background color:yellow;text align:left;vertical align:top;}”);
回答。写(“”);
回答:写(标题部分);
Write(objSW.ToString());
如果(Url!=“”)
response.AddHeader(“刷新”、“3;url=“+url”);
response.End();
dg=null;
}
}
捕获{}
}

您需要明确告诉Excel该列包含字符串,而不是数字。如果Excel看到一个数字字符串,它将自动删除所有前导零,除非被告知这些数字实际上是字符串的一部分。调试代码以查明前导零丢失的确切位置。这将帮助您解决问题。此代码从不编译(例如,
catch
try
在哪里)。真正的代码在哪里?下次请尝试更好地格式化代码。您可以使用编辑器和那里的代码按钮。您能告诉我如何在asp.net中设置datagrid特定单元格的Textmode=“Text”吗