发现代码换行不太好看:
string fileName=getExcelFileName();FileStream objFileStream;
StreamWriter objStreamWriter;
string strLine="";
objFileStream = new FileStream(fileName,FileMode.OpenOrCreate,FileAccess.Write);
objStreamWriter = new StreamWriter(objFileStream,System.Text.Encoding.Default);for(int i=0;i<dt.Columns.Count;i++)
{
   strLine=strLine+dt.Columns[i].ColumnName.ToString()+Convert.ToChar(9);
}
objStreamWriter.WriteLine(strLine);
strLine="";for(int i=0;i<dt.Rows.Count;i++)
{
   for(int j=0;j<dt.Columns.Count;j++)
   {
      strLine=strLine+dt.Rows[i][j].ToString()+Convert.ToChar(9);
   }
   objStreamWriter.WriteLine(strLine);
   strLine="";
}
objStreamWriter.Close();
objFileStream.Close();

解决方案 »

  1.   

    很多人问过这样类似的问题了
    下面有个例子,自己看看先
    http://blog.sina.com.cn/u/4ab06e97010005x7
      

  2.   

    winsor_w(.net才是硬道理) 
    多谢你的帮忙,可是我有点看不懂哦,
    下面一个方法是干什么的?
    好象是在web下用的是吗?我在windows下怎么用应该?
      

  3.   

    /// <summary>
    /// 将DataSet导出到Excel文件。
    /// </summary>
    ///金质打印通里的代码吧,长江支流弄得,改一下就能用
    /// <param name="ds">数据集,注意本方法每个表最多导数据不要大于65536,如果要导更大数据和海量数据,请使用另一专用组件可指定每页sheet大小。</param>
    /// <param name="fileName">文件名,如果已存在则替换。</param>
    /// <param name="caption">Excel的窗口标题。</param>
    public static void Export(System.Data.DataSet ds,string fileName,string caption)
    {if (ds == null || ds.Tables.Count == 0)
    {
     return;
    }GoldPrinter.ExcelExpert.ExcelBase excel = null;try
    {
     excel = new GoldPrinter.ExcelExpert.ExcelBase(); excel.Open(); excel.Caption = caption; //清空
     excel.WorkSheets.Clear(); for(int i = 0 ; i < ds.Tables.Count ; i++)
     {
      string[,] arrTable = null;
      
      arrTable = GetArrFromTable(ds.Tables[i]);
      Excel.Range range = excel.GetRange(1,1,ds.Tables[i].Rows.Count,ds.Tables[i].Columns.Count);
      GoldPrinter.ExcelExpert.RangeVisitor rv = new GoldPrinter.ExcelExpert.RangeVisitor(range);
      rv.SetValue(arrTable);
      excel.WorkSheets.ActiveSheet.Name = ds.Tables[i].TableName;  excel.WorkSheets.Add().Activate();
     }
     excel.WorkSheets[0].Activate(); if (System.IO.File.Exists(fileName))
     {
      excel.SaveAs(fileName,true);        
     }
     else
     {
      excel.SaveAs(fileName,true);
     }
    }
    catch(Exception ex)
    {
     throw ex;
    }
    finally
    {
     excel.Close();
    }
    }
    //不考虑dt删除了行的情况
    private static string[,] GetArrFromTable(System.Data.DataTable dt)
    {
    string[,] arrTable = new string[dt.Rows.Count,dt.Columns.Count];for(int i = 0 ; i < dt.Rows.Count ; i++)
    {
     for(int j = 0 ; j < dt.Columns.Count ; j++)
     {
      arrTable[i,j] = dt.Rows[i][j].ToString();
     }
    }return arrTable;
    }
      

  4.   

    是不是需要GoldPrinter.dll呀!哪里有下载呀
      

  5.   

    你只要看我那个填充到Excel里面是怎么用的就可以了啊
    Web跟Windows大同小异