如何将execl中的某一单元的值写入table中
解决方案 »
- 多个客户端同时提交数据如何处理
- dbgrideh竖直滚动条horzScrollBar显示只有(上中下)三个位置,怎么能正确显示实际位置?
- 请问两个控件类型的问题
- 请教:为什么ado里不能执行带2个自动编号的查询
- 到哪里找“带左右箭头的splitter”控件?
- 关于流文件的最基本的简单问题请教。。
- 求D5补丁的系列码!!!我用安装D5时的ski-hd3-c139 92X0-92X1 的不行。
- 请问,用ado必须要装adoupdate2吗?哪里有下载的?
- 如何讓richedit的高度它裝載的文件自動控制?
- delphi fastReport报表问题
- 急救:我用delphi做的dll为什么 只能Uses 3个pas文件?
- 我想学学DELPHI?
table.FieldByName('Field').Asstring := Excel.Cells[i, l].value;
unit XuLib;interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, StdCtrls, ExtCtrls, Grids, DBGrids, Excel2000,
OleServer, Mask, DBCtrls, ComCtrls;////////////////////////////////////////////////////////////////////////////////
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() /////////////////////////////////////
end.