以前的程序,希望对你有帮助!
procedure TFrm_Kj_kfxm_tz.SpeedButton3Click(Sender: TObject);
var
    AppWord,MyDoc,R,T :Variant;
    sArray :array[1..20] of string;
    i,j,rowcount :word;
    je :double;
    pathname: string;
begin
  inherited;
  try
    AppWord := CreateOleObject('Word.application');
  except
    MessageDlg('请确定Microsoft Word是否安装!', mtInformation, [mbOK], 0);
  end;
  AppWord.visible :=True;
  try
    //pathname:=ExtractFilePath(paramstr(0));
    pathname:=ReadStrFromIni('dotpath','path','');
    showmessage(pathname);
    MyDoc := AppWord.Documents.Add(Template:=pathname + '\年度通知模板.dot');    sArray[1] := cds_data.fieldbyname('ny').AsString;
    sArray[2] := cds_data.Fieldbyname('tzdw').AsString;
    sArray[3] := cds_data.fieldbyname('nr').asstring;
    sArray[4] := cds_data.fieldbyname('xdtzdw').asstring;
    sArray[5] := cds_data.fieldbyname('xdtzsj').AsString;
    sArray[6] := cds_data.fieldbyname('mc').asstring;    T := MyDoc.tables.item(1);
    t.cell(1,1).range.text := sArray[6];
    t.cell(2,1).range.text := sArray[2];
    t.cell(3,1).range.text := '  ' + sArray[3];
    t.cell(4,1).range.text := sArray[4];
    t.cell(5,1).range.text := sArray[5];    //计划表
    T := MyDoc.tables.item(2);
    t.cell(1,1).range.text := '附:'+ sArray[1] + '新技术开发项目计划表';
    T := MyDoc.tables.item(3);
    t.cell(2,1).range.text := sArray[1] + '新技术开发项目计划表';
    T := MyDoc.tables.item(4);
    rowcount := cds_ndjh.RecordCount;
    cds_ndjh.First;
    je := 0;
    for i:=1 to rowcount do
    begin
        with cds_ndjh do
        begin
            if not eof then
            begin
                sArray[10] := inttostr(i);
                sArray[11] := fieldbyname('xmmc').AsString;
                sArray[12] := fieldbyname('zynr').AsString;
                sArray[13] := '自' + fieldbyname('ksrq').AsString + '至' + fieldbyname('zzrq').AsString;
                sArray[14] := fieldbyname('je').Asstring;
                sArray[15] := fieldbyname('zrdw').AsString;
                sArray[16] := fieldbyname('bz').AsString;
                je := je + fieldbyname('je').AsFloat;
                for j:=1 to 7 do
                begin
                    t.cell(i + 1,j).range.text := sArray[j + 9];
                end;
            end;
            t.rows.add;
            next;
        end;
    end;//for end;
    t.cell(i + 2,2).range.text := '合计';
    t.cell(i + 2,5).range.text := floattostr(je);
    //////////save
    
  except
    AppWord.Quit;
  end;end;