常用的汇出excel的方法是通过拼接字符串的方法来完成的。不过字符串容易过大或者溢出。如下
//数据表 datatable

   Response.Buffer= false;
   Response.Charset="BIG5";
   Response.ContentType="Content-Language;content=zh-tw";
   Response.AppendHeader("Content-Disposition","attachment;filename=myexcel.xls");
   Response.ContentEncoding=System.Text.Encoding.GetEncoding("BIG5");  
   Response.ContentType = "application/ms-excel";   
   
   string content="";   
   for(int i=0;i<datatable.Rows.Count;i++)
   {
    for(int j=0;j<datatable.Columns.Count;j++)
    {
     content+=datatable.Rows[i][j].ToString()+"\t";
    }
    content+="\n";
  }
  
   Response.Write(content);    
   Response.Clear();   
   Response.End();
  //由于字符串连续的拼接,会造成变量过大,即使不死机,数据也会非常的慢。
 //所以修改为只遍历一行就输出一次。

   Response.Buffer= false;
   Response.Charset="BIG5";
   Response.ContentType="Content-Language;content=zh-tw";
   Response.AppendHeader("Content-Disposition","attachment;filename=myexcel.xls");
   Response.ContentEncoding=System.Text.Encoding.GetEncoding("BIG5");  
   Response.ContentType = "application/ms-excel";   
   
   string content="";   
   for(int i=0;i<datatable.Rows.Count;i++)
   {
    for(int j=0;j<datatable.Columns.Count;j++)
    {
     content+=datatable.Rows[i][j].ToString()+"\t";
    }
    content+="\n";

    Response.Write(content);
    content="";
   }
   Response.Clear();

   
   Response.End();

posted on 2005-12-23 10:15  戒持飛鳥  阅读(278)  评论(0)    收藏  举报