起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 436|回复: 6

[问题]请问如何在调出的Word里实现换行

[复制链接]
发表于 2010-7-26 11:30:52 | 显示全部楼层 |阅读模式
1 我用
  CFName := 'e:\Word测试001.doc';
  FWord := ComObj.CreateOleObject('Word.Application');
  FApp := DispatchHelper.Create(FWord);
  FApp.PropertyPut('Visible', [True]);
  FDocs := DispatchHelper.Create(FApp.PropertyGet('Documents',  []));
  FDocs.InvokeMethod('Open', [CFName]);
调出 Word,想实现换行应该怎么写。
如实现VBA下面的代码
   ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=3, NumColumns:= _
        3, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
        wdAutoFitFixed
    With Selection.Tables(1)
        If .Style <> "网格型" Then
            .Style = "网格型"
        End If
        .ApplyStyleHeadingRows = True
        .ApplyStyleLastRow = True
        .ApplyStyleFirstColumn = True
        .ApplyStyleLastColumn = True
    End With
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.MoveDown Unit:=wdLine, Count:=2
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.MoveLeft Unit:=wdCharacter, Count:=3
    Selection.MoveUp Unit:=wdLine, Count:=2
    Selection.TypeText Text:="123123"
    Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.TypeText Text:="45"
    Selection.TypeParagraph
    Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.TypeText Text:="67"
    Selection.MoveRight Unit:=wdCharacter, Count:=4
    Selection.MoveLeft Unit:=wdCharacter, Count:=1
    Selection.InsertRows 1
    Selection.Collapse Direction:=wdCollapseStart
    Selection.MoveRight Unit:=wdCharacter, Count:=3
    Selection.InsertRows 1
    Selection.Collapse Direction:=wdCollapseStart
    Selection.TypeText Text:="88"
End Sub

2 用
FWord := ComObj.CreateOleObject('Excel.Application');//('Visio.Application');//('Excel.Application');
  FApp := DispatchHelper.Create(FWord);
  FApp.PropertyPut('Visible', [True]);
  FDocs := DispatchHelper.Create(FApp.PropertyGet('WorkBooks',  []));
  //FDocs.InvokeMethod('ADD', [CFName]);  //ADD 和 Open效果一样
  FDocs.InvokeMethod('Open', [CFName]);
代码调出Excel,想在指定的格子里写字段怎么写
比如 “D3”  位置输入‘单据号’

谢谢。
回复

使用道具 举报

 楼主| 发表于 2010-7-26 13:29:12 | 显示全部楼层
请问往Excel内插入数据,如何插入指定的格,如A3
回复 支持 反对

使用道具 举报

发表于 2010-7-26 17:58:00 | 显示全部楼层
楼主,建议你直接用它的组件吧
http://bbs.justep.com/forum.php?mod=viewthread&tid=24449
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-27 09:36:37 | 显示全部楼层
这个不行,已经被领导否了。
我看到有Excel合并单元格的帖子,没看太懂,能给点明么。
谢谢。
回复 支持 反对

使用道具 举报

发表于 2010-7-27 14:14:07 | 显示全部楼层
论坛里其实有类似的代码的,楼主应该搜索研究一下,我贴出参考代码,下面的效果是打开一个已经存在的excel,然后第一行第一列中填入一个文字信息:
procedure TMainForm.Button2Click(Sender: TObject);
var
  openDialog:TOpenDialog;
  o,odoc: Object ;
  excelApp,b: System.DispatchHelper;
begin
  openDialog:=TOpenDialog.Create(nil);
  try
    if openDialog.Execute then
    begin
      o :=ComObj.CreateOleObject('Excel.Application');
      excelApp := DispatchHelper.Create(o);
      excelApp.PropertyPut('Visible', [False]);
      odoc:= excelApp.PropertyGet('WorkBooks',[]);

      DispatchHelper.Create(odoc).InvokeMethod('Open',[openDialog.FileName]);

      b := DispatchHelper.Create(excelApp.PropertyGet('cells', [1,1]));
      b.PropertyPut('value',['屏名称']);
      excelApp.InvokeMethod('Save',[]);
    end;
  finally
    excelApp.InvokeMethod('Quit',[]);
    (odoc as System.IDisposable).Dispose;
    (o as System.IDisposable).Dispose;
    openDialog.free;
  end;
end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-29 16:17:30 | 显示全部楼层
这个第二个在Excel中插入数据已经解决,
第一个问题呢,,在Word文档中如果有网格,该如何增加行数呢。??
谢谢。
回复 支持 反对

使用道具 举报

发表于 2010-8-2 15:13:21 | 显示全部楼层
实在不好意思,一直没时间去试,楼主你先自己 翻译试试(论坛里搜索一下,看看是否有参考)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-7 22:15 , Processed in 0.041269 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表