C# 如何以文本格式从DataTable导出到Excel文件(即使有数字)

C# 如何以文本格式从DataTable导出到Excel文件(即使有数字),c#,asp.net,excel,C#,Asp.net,Excel,我使用以下过程从数据表创建Excel电子表格: protected void UploadDataTableToExcel(DataTable dtEmp, string filename) { string attachment = "attachment; filename=" + filename; Response.ClearContent(); Response.AddHeader("content-disposition

我使用以下过程从数据表创建Excel电子表格:

    protected void UploadDataTableToExcel(DataTable dtEmp, string filename)
    {
        string attachment = "attachment; filename=" + filename;
        Response.ClearContent();
        Response.AddHeader("content-disposition", attachment);
        Response.ContentType = "application/vnd.ms-excel";
        string tab = string.Empty;
        foreach (DataColumn dtcol in dtEmp.Columns)
        {
            Response.Write(tab + dtcol.ColumnName);
            tab = "\t";
        }
        Response.Write("\n");
        foreach (DataRow dr in dtEmp.Rows)
        {
            tab = "";
            for (int j = 0; j < dtEmp.Columns.Count; j++)
            {
                Response.Write(tab + Convert.ToString(dr[j]));
                tab = "\t";
            }
            Response.Write("\n");
        }
        Response.End();
    }
protected void UploadDataTableToExcel(DataTable dtEmp,字符串文件名)
{
string attachment=“附件;文件名=“+filename;
Response.ClearContent();
AddHeader(“内容处置”,附件);
Response.ContentType=“application/vnd.ms excel”;
string tab=string.Empty;
foreach(数据列dtEmp.Columns中的数据列dtcol)
{
Response.Write(tab+dtcol.ColumnName);
tab=“\t”;
}
响应。写入(“\n”);
foreach(数据行dr在dtEmp.Rows中)
{
tab=“”;
对于(int j=0;j
它工作正常,除非单元格只有数字。例如:

  • 此“696906202223401504”变为“6.96902E+18”
  • 此“076854957”变为“76854957”

我希望Excel电子表格将每一列保留为文本,而不是将它们转换为整数

我认为这里的问题是Excel端而不是C端…@m1Lb4nKs我同意。。。但是有一种方法可以告诉excel使用哪种单元格格式查看,而不是发送excel
“0123”
,您可以发送它
“=”0123“
,然后excel将在单元格中显示
0123
,尽管单元格中存储的实际数据将是
=”0123“
@m1Lb4nKs刚刚尝试过,但它没有工作。。。如有其他想法,将不胜感激