导出到电子表格途径很多,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 ;
…… …… ……