在应用中使用了直接遍列DataTable得到数据再直接导出到客户端的EXCEL的方法如:
SqlConnection conn=new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["conn"]);
SqlDataAdapter da=new SqlDataAdapter("select * from tb1",conn);
DataSet ds=new DataSet();
da.Fill(ds,"table1");
DataTable dt=ds.Tables["table1"];
StringWriter sw=new StringWriter();
sw.WriteLine("自动编号,姓名,年龄");
foreach(DataRow dr in dt.Rows)
{
sw.WriteLine(dr["ID"]+","+dr["vName"]+","+dr["iAge"]);
}
sw.Close();
Response.AddHeader("Content-Disposition", "attachment; filename=test.csv");
Response.ContentType = "application/ms-excel";
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
Response.Write(sw);
Response.End();
但是在实际中发现一个问题,就是有此数字类型的字段导出后在EXCEL中自动变成了科学计数表示法,还有些就直接变成了日期型,请各位大侠给出一个好的解决方案.....

解决方案 »

  1.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=8A4CBF47-B888-4832-3389-ED3A3A3C8AAB
      

  2.   

    http://dotnet.aspx.cc/Exam/OutPutExcel.aspx
      

  3.   

    http://dotnet.aspx.cc/ShowDetail.aspx?id=8A4CBF47-B888-4832-3389-ED3A3A3C8AAB
      

  4.   

    TO: net_lover(孟子E章) 
    小弟在网上查过不少资料都用的是你的方法就是直接用DATAGRID导出但在项目中我用的是直接从DATATABLE中得到数据,又不想改动太大,在数字前加'号的确能够解决,但有点担心就是这些导出的数据可能在有时还需重新导入,那么导入的数据在是不是也会保留这个'号呢?
      

  5.   

    TO: net_lover(孟子E章) 
    http://dotnet.aspx.cc/ShowDetail.aspx?id=8A4CBF47-B888-4832-3389-ED3A3A3C8AAB中
    那对于分页的情况怎么处理啊
      

  6.   

    还是在服务端直接转化成EXCEL才能解决吗?