取出数据RichEdit1里写,再处理后,然后存成文件.doc;

解决方案 »

  1.   

    //......向Word的活动文档中插入一表格,填入ATable中的数据......//procedure TForm1.inserttable(AWordApp:olevariant;ATable:TTable);
    var
      AWordDocument,mytable,Insertpoint,ARange:olevariant;
      i,j:byte;
      clip:tclipboard;
      AImage:Timage;
      iconindex,link,placement,displayasicon,datatype,iconfilename,iconlabel:olevariant;
    begin
      timer1.enabled:=false;
      if AWordApp.documents.count>0 then
        AWordDocument:=awordapp.activedocument
      else
        AwordDocument:=awordapp.documents.add;  ARange:=AWordApp.application.selection.range;
      ARange.insertBefore(ATable.tablename);
      ARange.end:=ARange.end+10;
      ARange.font.size:=16;  Insertpoint:=Awordapp.selection.end+length(atable.tablename);  Atable.close;
      Atable.open;
      mytable:=AWordDocument.Tables.Add(AWordDocument.range(insertpoint,insertpoint),
               ATable.recordcount+1,ATable.Fields.count);       //新表格
      iconindex:=1;
      link:=false;
      placement:=wdInLine;
      displayasicon:=false;
      datatype:=wdPasteDeviceIndependentBitmap;
      iconfilename:='';
      iconlabel:='';  clip:=tclipboard.create;  for i:=1 to ATable.fields.count do
      begin
        mytable.cell(1,i).range.text:=ATable.Fields[i-1].fieldname;
        mytable.cell(1,i).range.font.size:=14;
        mytable.cell(1,i).range.font.bold:=true;
      end;  for i:=1 to ATable.recordcount do
      begin
        for j:=1 to ATable.fields.count do
        if not ATable.Fields[j-1].isblob then
        begin
          mytable.cell(i+1,j).range.text:=ATable.fields[j-1].AsString;
          mytable.cell(i+1,j).range.font.size:=12;
        end
        else if (tblobfield(ATable.Fields[j-1]).blobtype=ftGraphic)
                or (tblobfield(ATable.Fields[j-1]).blobtype=fttypedbinary) then
        begin
          Aimage:=timage.create(self);
          Aimage.picture.bitmap.assign(ATable.FieldByName('BMP'));
          Aimage.autosize:=true;
          clip.Assign(Aimage.picture);                            //把图形拷入剪贴板
          Aimage.free;
          Mytable.cell(i+1,j).range.PasteSpecial(iconindex,link,placement,
          displayasicon,datatype,iconfilename,iconlabel);         //选择性粘贴
        end
        else if tblobfield(ATable.Fields[j-1]).blobtype=ftMemo then
        begin
        end;
        ATable.Next;
      end;
      clip.free;
    end;
      

  2.   

    与word打交道的基础比较差,能不能谢细些?带些注释?热心的大虾,小弟这两天想回家,要干出来,多谢了。
      

  3.   

    luoweicaisd(笑三少)的方法简单实用