请高手请问!有关将信息导出到EXCEL表的代码,小弟看不懂,多谢

请高手请教!有关将信息导出到EXCEL表的代码,小弟看不懂,谢谢!
请高手详细解释一下啊!不胜感激!
//自定义打印表格
procedure     Toexcel(query1:Tquery;DBGrid1:TDBGrid);
var
  ExcelApp:   Variant;
    i,j,k:integer;
    FileName:string;
    DlgSave:TsaveDialog;
Const
    Con_stStr= ' ' ' ';
Begin
if   query1.Active=false   then
begin
Application.MessageBox( '请先执行数据查询 ', '查询 ',32);
exit;
end;
if   application.messagebox( '确认输出当前记录到EXCEL表? ', '操作确认 ',mb_okcancel)=idcancel   then   exit;
    DlgSave:=TsaveDialog.Create(nil);
    DlgSave.Filter:= '*.xls|*.xls ';
    if   DlgSave.Execute   then
    Begin
        Filename:=DlgSave.FileName;
        ExcelApp   :=   CreateOleObject(   'Excel.Application '   );
        ExcelApp.Caption   := '查询输出一览表 ';// 'Microsoft   Excel ';
        ExcelApp.WorkBooks.Add;
        ExcelApp.WorkSheets[1].Activate;
        K:=1;
        For   i:=0   To   DBGrid1.Columns.Count-1   Do
        Begin
            if   DBGrid1.Columns[i].Visible   Then
            Begin
                ExcelApp.Cells[1,K]:=DBGrid1.Columns[i].Title.Caption;
                k:=k+1;
            End;{if}
        End;{for}
        ExcelApp.rows[1].font.name:= '宋体 ';
        ExcelApp.rows[1].font.size:=10;
        ExcelApp.rows[1].Font.Color:=clBlack;
        ExcelApp.rows[1].Font.Bold:=true;
        j:=1;
        For   i:=0   To   DBGrid1.Columns.Count-1   Do
        Begin
            If   DBGrid1.Columns[i].Visible   Then
            Begin
                query1.First;
                for   k:=1   To   query1.RecordCount   Do
                  Begin
                          if   DBGrid1.Fields[i]=nil   then
                              ExcelApp.Cells[K+1,j]:= ' '
                          else
                                ExcelApp.Cells[K+1,j]:=Con_stStr+DBGrid1.Fields[i].asString;
                          query1.Next;
                  End;{for}
            j:=j+1;
            End;{if}
        End;{for}
        For   i:=1   To   query1.recordcount+1   Do