C# 希望通过以文本格式保留所有行和列,在C中创建excel文件吗

C# 希望通过以文本格式保留所有行和列,在C中创建excel文件吗,c#,sql-server,excel,text,format,C#,Sql Server,Excel,Text,Format,我正在创建一个C应用程序,其中数据需要以文本格式粘贴到Excel文件中。我已成功生成Excel文件,但无法将所有行和列格式化为文本格式 我尝试使用此代码,但不起作用: string style = @"<style> .textmode { mso-number-format:\@; } </style>"; Response.Write(style); 以下是生成Excel文件的代码: SqlConnection con = new SqlConnection(Con

我正在创建一个C应用程序,其中数据需要以文本格式粘贴到Excel文件中。我已成功生成Excel文件,但无法将所有行和列格式化为文本格式

我尝试使用此代码,但不起作用:

string style = @"<style> .textmode { mso-number-format:\@; } </style>";
Response.Write(style);
以下是生成Excel文件的代码:

SqlConnection con = new SqlConnection(ConnectionString);
DataSet dt = new DataSet();

SqlDataAdapter sda = new SqlDataAdapter("select * from company where 1=2", con);

con.Open();
sda.Fill(dt);

ViewState["DataTable"] = dt.Tables[0];

GridView gv = new GridView();
gv.DataSource = dt;
gv.DataBind();

con.Close();

DataTable dta = (DataTable)ViewState["DataTable"];

Response.Clear();
Response.AddHeader("Content-Disposition", "attachment;filename=FileFormatforData.xls");
Response.ContentType = "application/vnd.ms-excel";
//string style = @"<style> .textmode { mso-number-format:\@; } </style>"; //format row and cols
//Response.Write(style);
string space = "";

foreach (DataColumn col in dta.Columns)
{
     Response.Write(space + col.ColumnName);
     space = "\t";
}

Response.Write("\n");

int countcolumn;

foreach (DataRow dr in dta.Rows)
{
    space = "";

    for (countcolumn = 0; countcolumn < dta.Columns.Count; countcolumn++)
    {
        Response.Write(space + dr[countcolumn].ToString());
        space = "\t";
    }

    Response.Write("\n");
}

Response.End();
有人能帮我吗


提前感谢。

尝试使用任何Excel输出库。以我国为例:


尝试使用任何Excel输出库。以我国为例:

using (var ew = new ExcelWriter("C:\\temp\\test.xlsx"))
{
    int col = 1;
    int row = 1;

    foreach (DataColumn col in dta.Columns)
    {
        ew.Write(col.ColumnName, col++, row);
    }

    foreach (DataRow dr in dta.Rows)
    {
        ++row;
        for (col = 1; col <= dta.Columns.Count; col++)
        {
            ew.Write(dr[col-1].ToString(), col, row);
        }
    }
}