小弟参考旭日升大哥的代码,想使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() /////////////////////////////////////
我加了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() /////////////////////////////////////
报的是这个错,各位高手,请出手啊
加上的就是这句代码,报错如上,请各位高手指点一下