各位走过,路过的朋友,请进... ( 积分: 100 )

  • 主题发起人 主题发起人 Sdelphi_fu
  • 开始时间 开始时间
S

Sdelphi_fu

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:
如何把DBGRIDEh中的数据导出Excel 和 把Excel中的数据导入DBGRIDEh中??谢谢!!
[?][?]
 
1:DBgridEh->excel 有个组件的
2:excel-> DBgridEh 用个Ado+Ds就 ok了
 
Dstorm:
你好,能详细一点说明或给一个例子好吗?多谢!
 
导出到电子表格途径很多,1是使用ehlib 内地的组件,2就是用appexcel组件,打开excle并创建 sheet ,在按照cell[].value赋值既可以。

导入dbgrideh直接是不行的,因为 dbgrideh数据感知 组件,必须对数据源进行,就是到dataset,导入后update就可以了,对于这个问题建议解决上一问题的第二种做法,你就一目了然了。

看看下面的代码片段

var
Excel_app,Sheet:Variant ;


procedure TMainForm.app_st;
begin
Try
Excel_app:= CreateOleObject('Excel.Application');
Excel_app.Visible :=true;//是否显示
Excel_app.Caption := '奖金系统调用 Microsoft Excel';
except
datamd.Show_msg('初始化Excel失败,可能没装Excel,或者其他错误。',1);
Excel_app.DisplayAlerts := False;//是否提示存盘
Excel_app.Quit;//如果出错则退出
end;

//

procedure TMainForm.creat_excel_app_top(ss_sheet:string);
begin

TRY
Excel_app.Workbooks.Add;//新建EXCEL文件
Excel_app.Workbooks[1].WorkSheets[1].Name := ss_sheet ;
Sheet:= Excel_app.Workbooks[1].WorkSheets[1];//等效下面的语句

except
datamd.Show_msg('初始化Excel失败,请重起再试。',1);
end;


end;
//

sheet.range['A'+si+':M'+si].Merge(false);
sheet.range['A'+si].Value:=format('%s年%s月份经济考核表',[year_str,month_str]);
sheet.Rows[si].RowHeight:=30 ;
sheet.Rows[si].Font.Bold:= True;
sheet.Rows[si].Font.Size:=16 ;
sheet.range['A'+si].HorizontalAlignment:=3 ;//3:居中 2:居左,默认

// 游走单元编号
Inc(i); si:=inttostr(i) ;

sheet.range['A'+si+':I'+si].Merge(false);
sheet.range['A'+si].Value:=dw_nm ;
sheet.range['A'+si].Font.Bold:= True;
sheet.range['A'+si].Font.Size:=14 ;

sheet.range['J'+si+':M'+si].Merge(false);
sheet.range['J'+si].Value:='时间:'+formatdatetime('yyyy年mm月dd日 hh:mm',now) ;


sheet.range['B:B'].ColumnWidth :=3.4 ;

…… …… ……
 
有一种技术需要使用第三方控件,你要试一下吗?
QQ:292044357
 
后退
顶部