using Interop.Excel;        Application app = new Application();
        app.Visible = false;
        app.Application.DisplayAlerts = false;
        Workbook xbook = app.Workbooks.Add(misssing);
        Worksheet xsheet = (Worksheet)xbook.ActiveSheet; 
        Range rngHead;
        for (int i= 0; i < dt.Rows.Count; i++)
            {
              for (int j = 0; j < dt.Columns.Count; j++)
               {
                  rngHead = (Range)xsheet.Cells[i + 1, j + 1];
                  rngHead.Value2 = dt.Rows[i][i];
               }            }用这种引用Excel组件的方式去做这种下载,数据量一大,就会出现漫长的等待, 有什么好的方法优化下速度吗?
而且用这种方式做EXCEL下载, 服务器端好像还必须安装OFFICE,如果服务器不安装,能有别的方法做这种下载吗。、
因为这种方式做下载,可以比较方便的控制EXCEL每个单元格的样式,所以。才用这种下载,但是,问题也不少。 希望各位帮帮忙了。

解决方案 »

  1.   

    提供一个思路:
    文本格式的数据,
    如果换行和间隔符号都正确的话,
    是可以直接改后缀名形成excel文件的
      

  2.   


    正解,
    生成TXT的时候  用/t生成的
      

  3.   

    有这样实现过Excel下载, 不过,我现在需要的下载,包含了对Excel单元格和多样式的控制,
     比如: 单元格的背景色, 边框色,单元格大小, 合并等等。
     用文本格式来输出到Excel, 能行么?
      

  4.   

    没做过大数据量的,
    看看这个有参考意义没:
    http://www.52coding.net/ArticleView.aspx?ArticleID=108
      

  5.   


     我做的下载就是和你给的差不多。 因为需要做到下载出很多形式的EXCEL,所以才用到这种方式。可是,速度上是个很大的问题
      

  6.   

    兄弟,不用这么麻烦的呀! 生成EXCEL文件很简单的 http://www.okbase.net/doc/details/57