两个菜鸟问题 ,大家995

huqiyang 2006-03-29 05:25:54
1.如何将DELPHI中,dbgrid中查询的数据保存成EXCEL文档
2.如何实现EXCEL中的数据导入到DELPHI中的DBGRID中,然后再导入到数据表中
谢谢!
...全文
84 点赞 收藏 4
写回复
4 条回复
ycn12345 2006年03月30日
第一个问题已经由darkliu(钢铁工人甲)说了...
但第二个问题是不可能的...你的次序错了...dbgrid是到一个数据库中读数据或者写入..而不是数据库到dbgrid中读数据的
回复 点赞
janezjtjdx 2006年03月30日
是啊,次序不对,应该是先导入数据库后显示。
DBGrid本来就显示的是数据库中的数据。
回复 点赞
darkliu 2006年03月29日
2.应该是先倒入数据库,再显示于Dbgrid,网上很多这样的代码
回复 点赞
darkliu 2006年03月29日
1.
procedure TForm1.DBgridToExcel(bsGrid:TDBGrid;filename:string); //DBGrid输出到Excel
var
v,sheet: Variant;
i,j:integer;
begin
SaveDialog1.Filter:='*.xls';
SaveDialog1.FileName:=filename;
if SaveDialog1.Execute then
try
v:=CreateOleObject('Excel.Application'); //创建ole对象
v.WorkBooks.Add;
Sheet:=v.WorkBooks[1].WorkSheets[1];
bsGrid.DataSource.DataSet.first;
i:=1;
While Not(bsGrid.DataSource.DataSet.Eof) Do
Begin
For j:=1 To bsGrid.FieldCount Do
if bsGrid.Columns[j-1].Visible=true then
begin
Sheet.Cells[i+1,j]:= bsGrid.Fields[j-1].AsString ; //+1保留列标题
Sheet.Cells[1,j]:= bsGrid.Fields[j-1].FieldName ;
end;
bsGrid.DataSource.DataSet.Next ;
i := i+1 ;
End ;


v.WorkBooks[1].saveas(SaveDialog1.FileName);
v.WorkBooks[1].close;
v.quit;
v:=Unassigned;
except
v.DisplayAlerts:=false; //不提示存盘
v.Quit; //关闭OLE链接
showmessage('初始化Excel失败,可能没装Excel,或者其他错误;请重新再试。');
close;
end;
end;


调用时,
DBgridToExcel(bsGrid1;'wwwwwww');
回复 点赞
发动态
发帖子
数据库相关
创建于2007-08-02

1209

社区成员

8.8w+

社区内容

Delphi 数据库相关
社区公告
暂无公告