我有相应的源代码,可以给你参考一下,留下你的E_Mail

解决方案 »

  1.   

    使用循环遍历ListView或Query,取各记录写入WORD。
    至于WORD中的分页,可以去看WORD自己做这些事时的宏代码,然后翻译成DELPHI代码即可。
      

  2.   

    to:GreenCsdn(稻草人) 
    谢谢,[email protected]
      

  3.   

    [email protected]
    给俺一份!
    谢谢
      

  4.   

    to:GreenCsdn(稻草人) 
    谢谢你的代码,问题仍没有解决!
    对我来说主要的难点是如何让第一个记录在第一个页里相应表格中
    ,第二个记录在第二页相应表格中,第三个记录在第三个页相应表格中等等?
    望大虾帮忙!谢谢!
      

  5.   

    这个问题难道很难,还是我没说清楚?
    我查了整个的csdn旧贴,也没有结果,希望大虾指出!
    如你认为不可能实现这个功能,望也解释一下,谢谢!
    或那里有比较全的delphi操作word的资料望给个网址!
      

  6.   

    我参考一下你的源代码:
    [email protected]
      

  7.   

    to:mysine(宝兰)
    谢谢,明天给你发,代码现在不在身边
    to:Kingron(单身走我路……)
    谢谢,我用delphi时间不是很长,对我来说还是很难!
    不过你好想象没有明白我的意思.
    你只要告诉我如何从一个word模版(只有一页,而且有三个表,表格行和列没有规则)中,把这个word模版在完全覆盖到第二页,第三页(页的个数就是查询到记录集的个数,也就是你事先做好的是word模版页的个数是动态改变的(第一页的数据库中数据是第一条记录,第二页的数据库中数据是第二条记录,等等)
    word模版如图
    表1
    |----1数据库中数据-----|---2名称---|----3数据库中数据------|
    |----2-----|--------4-------|--5年龄--|——6数据库中数据---|
    表2
    |----1-----|-------2--------|-----------3-----------|--4---|
    |          |                              |
    |----5-----|-------6数据库中数据----------|-------7--------|
    表3
    |---1---|------2-------|---------3----------|------4-------|
    谢谢!
      

  8.   

    TO 稻草人
    能给我源码吗[email protected]
    谢谢了
      

  9.   

    我给出一些宏把,自己转换到Delphi很容易的,有了这些宏,你就可以达到你的目的了,我测试过三个Table的。
    Sub CPTable()
      ' 注意0表示开始,143表示结束,你可以自己多多调试
      ' 这个表示需要选择的表格的范围
      Set MyRange = ThisDocument.Range(0, 143)
      MyRange.Select  ' 选择选中的表格和文字
      MyRange.Copy  ' 复制
      Selection.EndKey Unit:=wdStory ' 移动倒文档末尾
      Selection.InsertBreak (wdPageBreak) ' 插入分页符
      Selection.Paste ' 粘贴
    End Sub利用上面的代码生成了页面和表格之后,你就可以利用Tables.Item来操作表格了,而下面的代码就简单了,在此不多说。剩下的就是计算表格的Index了,这个很简单的吧?一个记录3个表格,那么第二个记录就是第4\5\6个表格,以此类推,如果要操作表格里面的单元个,只要操作Tables.Item(Index).Cell(i,j)即可。
      

  10.   

    to:Kingron(单身走我路……)
    老大你说的我知道,对我来说,难就难在这些宏转换到Delphi上,我用的是delphi5.0
    代码如下:
    var
        Wordhandle,dochandle,MyRange:Variant;
         BookMark_Name,renflag :string;
         i:integer;
    begin
        Wordhandle:=CreateOLeObject('Word.application');
        wordhandle.visible:=true;
        DocHandle :=WordHandle.Documents.Open('C:\112.Doc');//打开word模版  
        DocHandle.select;//选取整个文档
        DocHandle.range.copy;//复制范围
        DocHandle.select.EndKey(Unit:=wdStory); //' 移动倒文档末尾
        DocHandle.select.InsertBreak(wdPageBreak); //' 插入分页符
        DocHandle.select.Paste //' 粘贴
    end;
    在DocHandle.select.EndKey(Unit:=wdStory); 和DocHandle.select.InsertBreak(wdPageBreak); 这两个地方,我就不只如何
    换到Delphi上
    再次感谢Kingron(单身走我路……)而且为什么DocHandle.点后没有任何的属性?
      

  11.   

    Selection是App的,不是Doc的。
    至于没有Code Insight的功能,这是因为OLE是Variant的,Delphi无法进行自动完成功能,因此你需要自己翻阅VBA的资料,下面我就演示如何翻译VBA,说明,下面的代码没有经过测试,纯粹是随手写的。
    procedure CPTable;
    var
      MyRange,WordApp,WordDoc:OleVariant;
    begin
      WordApp:=CreateOleObject('Word.Application');
      WordDoc:=WordApp.Documents.Open('C:\A.Doc');
      MyRange:=WordDoc.Range(0,143);
      MyRange.Select;
      MyRange.Copy;
      WordApp.Selection.EndKey(wdStory);
      WordApp.Selection.InsertBreak(wdPageBreak);
      WordApp.Selection.Paste;
      WordDoc.Save;
      VarClear(MyRange);
      VarClear(WordDoc);
      VarClear(WordApp);
    end;