我用CreateOleObject来生成EXCEL,速度奇慢无比,
有人跟我说用GRID直接保存成EXCEL,
但是由于小生我的EXCEL要保存成多个SHEET(就是说一个文档要有多个不同的SHEET)
那用这种DBGRID直接保存的做法显然不是太合本意.不知道各位高手们有没有什么牛B的高速生成法..

解决方案 »

  1.   

    可以试试DELPHI已经提供的EXCEL控件啊。
      

  2.   

    估计就只有用流得方式来实现了。
    不过这需要对excel格式相当熟悉才行!
    好像一般的grid的导出都会用这种方式,曾经看过其中一个的源代码,没看下去。
      

  3.   

    多个sheet的处理方法,我原来试过先用grid的导出方法导出到多个文件,这个速度快了点,
    但到合并到一个excel中,就得createoldobject了,这速度就慢了点。
    不过,可能比全部用ole方式操作要快点吧!
      

  4.   

    试验下:  FExcelSheet.ConnectTo(FExcelBook.Worksheets[1] as _WorkSheet);
        with FExcelSheet.QueryTables.Add(ADOQuery1.Recordset, FExcelSheet.Range['A3', EmptyParam], EmptyParam) do
        begin
          FieldNames := False;
          Refresh(False);
        end;  
      

  5.   

    呵呵,先产生Access数据库,然后再使用JET引擎
    SELECT * INTO [Sheet1$] "Excel文件名.xls" "Excel 8.0;"  FROM 表名
    SELECT * INTO [Sheet2$] "Excel文件名.xls" "Excel 8.0;"  FROM 表名
    SELECT * INTO [Sheet4$] "Excel文件名.xls" "Excel 8.0;"  FROM 表名