小弟参考旭日升大哥的代码,想使dbgrid中的数据倒入excle中去,在excel2002下也可以,但是有一个问题,我想在保存后,直接显示,不知如何办?
我加了exlapp.visible:=true;
也试过让exlapp打开保存的文件,
紧急求救////////////////////////////////////////////////////////////////////////////////Procedure DBToExcel( ModuleName : String ;  // Excel 模块文件名 *.Xlt  FileName: String ;  // Excel 目标文件名 *.Xls  DBGrid : TDBGrid ;  // TDBGrid 控件名  Row : Integer ;  // 起始行  Col : Integer   // 起始列) ;////////////////////////////////////////////////////////////////////////////////implementation//////////////////////////////////////////////////////////////////////////////////函数名 :  DBToExcel////  功能 : 将TDBGrid 的数据导入到从某模板文件建立的 Excel 文档中,//  举例 :  DBToExcel( 'C:\ReportTable.Xlt', 'C:\ReportTable.Xls',//                       DBGrid1, 5, 1 ) ;                                                             ////  注意  :所指定的模板文件*.xlt, 必须已存在////////////////////////////////////////////////////////////////////////////////Procedure DBToExcel( ModuleName : String ;  // Excel 模块文件名 *.Xlt  FileName: String ;  // Excel 目标文件名 *.Xls  DBGrid : TDBGrid ;  // TDBGrid 控件名  Row : Integer ;  // 起始行  Col : Integer  // 起始列) ;Var      ExlApp : TExcelApplication ;      ExlBook : TExcelWorkBook ;      ExlSheet : TExcelWorkSheet ;      i, j : Integer ;      temp1, temp2 : OleVariant ;Begin      // 判断指定的模板文件是否存在      ModuleName := Trim(ModuleName) ;      If FileExists(ModuleName)= False Then         begin               ShowMessage( '模板文件: '+ ModuleName + ' 不存在 !' ) ;               Exit ;         end ;      // 创建 Excel 服务器控件      ExlApp := TExcelApplication.Create(nil);      ExlBook := TExcelWorkBook.Create (nil);      ExlSheet := TExcelWorkSheet.Create (nil) ;      // 连接 Excel 服务器      Try         ExlApp.Connect ;      Except         ShowMessage ('连接失败,可以没装 Excle') ;         Abort ;      End ;      // 从指定的模板文件*.xlt 新建一 Excel 文档      temp1 := ModuleName ; temp2 := 1 ;      ExlApp.Workbooks.Add( temp1, temp2) ;      ExlBook.ConnectTo(ExlApp.Workbooks[1] );      ExlSheet.ConnectTo(ExlBook.Worksheets[1] As _WorkSheet );      // 把 TDBGrid 的数据导入 Excel 中      DBGrid.DataSource.DataSet.First ;      i := Row ;      While Not(DBGrid.DataSource.DataSet.Eof)  Do        Begin              For j:=Col  To DBGrid.FieldCount+ Col-1  Do                  ExlSheet.Cells.Item[i,j]:= DBGrid.Fields[j-col].AsString ;              DBGrid.DataSource.DataSet.Next ;              i := i+1 ;        End ;      // 保存到 指定的文件      FileName := Trim(FileName) ;      IF FileExists(FileName) Then DeleteFile(FileName) ;      ExlSheet.SaveAs(FileName);           // 关闭 Excel 服务器      ExlApp.Disconnect ;      ExlApp.Quit ;  ExlApp.Free;  ExlBook.Free;  ExlSheet.Free;End; // End of The Procedure DbToExcel_2() /////////////////////////////////////