两个菜鸟问题 ,大家995

huqiyang 2006-03-29 05:25:54
1.如何将DELPHI中,dbgrid中查询的数据保存成EXCEL文档
2.如何实现EXCEL中的数据导入到DELPHI中的DBGRID中,然后再导入到数据表中
谢谢!
...全文
124 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
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');

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧