有没有人用代码操作Word绘制过这样的表格!|------|-------|----------------------------|-----------------|
|      |       |        测定结果            |     规范要求    |
|项目  |单位   |------|------|-------|------|-----------------|
|      |       |   A  |   B  |   C   |   D  |                 |
|------|-------|------|------|-------|------|-----------------|
|      |       |      |      |       |      |                 |     
|------|-------|------|------|-------|------|-----------------|
|      |       |      |      |       |      |                 |      
|------|-------|------|------|-------|------|-----------------|现在问题的主要难点在于如何编制“测定结果”列的下面四列。其它的都容易搞定!

解决方案 »

  1.   

    我以前的代码如下:
    1、先建一个WORD文档:
      try
        MsAppl := CreateOleObject('Word.Application');
        MsAppl.visible := True;   
        MsAppl.Documents.add;
      except
        Result := false;
        MsAppl.quit;
        Abort;
      end;
    2、建表:
    MsAppl.ActiveDocument.Tables.Add(MsAppl.ActiveDocument.Range(0,0),2,4);编制“测定结果”列的下面四小列就不会做了!
    不知各位兄弟有何高见!
    必有重谢!
      

  2.   

    现在我用的就是OLE来做的,
    但是后面工作没法继续!
      

  3.   

    这个问题有点复杂,不过我解决了的。
    首先要确定你用的是office2000,还是office xp
    这两种中处理不一样。
    1。在office2000中
       它把合并了的行作为上一行来看。比如“项目”的单元是cell(1,1),“单位”是cell(1,2),“测定结果”是cell(1,3)。但是“A”的单元是cell(2,1),“B”的单元是cell(2,2)。2。在office Xp中
       它不把合并了的行作为上一行来看。比如“项目”的单元是cell(1,1),“单位”是cell(1,2),“测定结果”是cell(1,3)。但是“A”的单元是cell(2,3),“B”的单元是cell(2,4)。具体你可能还要自己试验一下。
      

  4.   

    先建七个列的表格,再用Cells.Merge方法把上面四个合并就可以了。
      

  5.   

    上面两位兄弟的想法很好,我有过类似的想法!
    但不会做,不知能否提供一些代码做参考,不胜感激!
    我用的是OFFICE 2000,
      

  6.   

    先在Word中录制宏,然后把它转换成Delphi就可以了,否则用Delphi调用这个宏也可以RunMacros。
      

  7.   

    看看这个有没有帮助
    如何使用 Delphi 给 word 增加表格现有一个模板文件 aaa.dot.
    里面有一个表格,形式如
    +------+-------------------------------------------
    |姓名:|网重
    |---------------------------------------------------
    |简历:
    +-------------------------------------------------
    |-------------------------------------------
    现在需要简历下面的单元格中动态插入一个表格(两列,行数由数据库中的数据决定)
    现在代码写了如下:..try
          WordApp := CreateOleObject('Word.Application');
          MyDoc := CreateOleObject('Word.Document');
       except
             Raise Exception.Create('无法打开Word,请确认已安装Word。');
       end;   WordApp.Visible := true;
       MyDoc := WordApp.Documents.Add(FileName,false);   MyDoc.BookMarks.Item('简历表').Select;
       WordApp.Selection.Text := Edit1.Text+'的个人简历';
       wTable := MyDoc.Tables.Item(1);  wtable.cell(3,1).Range.Text :='个人简历';
      wtablenew:=wtable.cell(3,1).tables.Add(wtable.cell   (3,1).range,10,10,wdWord9TableBehavior,wdAutoFitFixed); 
      

  8.   

    多谢naughtyboy() !
    多谢各位兄弟帮忙,
    我想应该可以搞定!
      

  9.   

    绝招来也:
    先在WORD中录制一个宏,录制时做你想要在代码中写出来的动作(比如说插入若干行或者作拆分)。然后用VBScript编辑器(在WORD中按F11)打开这段宏的源代码。
      将它转换成你的代码即可。
      

  10.   

    问题是我们客户一定要用WORD,没办法!
      

  11.   

    好问题解决了,用的是 lianghe(翌阳)老兄的方法!
    多谢大家!
    散分!