C#操作Word

Citron09 2016-10-10 05:42:25
最近在做关于word的内容。想向已经打开的word的插入一段文字,现在用的代码是:
Selection this_selection = Globals.ThisAddIn.Application.Selection;
this_selection.InsertAfter(“这是要插入的文字”);
this_selection.EndKey(WdUnits.wdStory);
this_selection.InsertParagraph();

这个虽然是能插入,但是有个问题,这个是在光标的地方在插入,我想做的是只在文字的后面继续插入文字,不管光标在哪里.
这个怎么弄?求问。
...全文
182 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
stherix 2016-10-11
  • 打赏
  • 举报
回复
引用 8 楼 Citron09 的回复:
[quote=引用 6 楼 stherix 的回复:] [quote=引用 5 楼 Citron09 的回复:] [quote=引用 3 楼 Citron09 的回复:] [quote=引用 1 楼 stherix 的回复:] 你所说的 文字的后面 指的是 文档最后 还是指定的文字后面 如果是指定的文字后面 那你可能需要搜索 如果只是文档最后 那么先 this_selection.EndKey(WdUnits.wdStory); 即可
this_selection.EndKey(WdUnits.wdStory); 这个是能实现功能,但是光标的位置也被变了啊。我想的是用户能在word输入内容的同时,这边也能自动添加到最后面,也就是说我的文字插入这个不能影响用户的输入,不会影响光标的位置,插入前光标在哪里,插入后光标也在哪里。我想过插入前记录光标位置,插入后把光标移动到那个位置,但是C#没有一个函数能直接实现这个功能么。谢谢解答[/quote] 但是这个不是插入到最后面。。是插入到光标后面。我想把Range 设为文字最后面怎么设置.[/quote] ActiveDocument.Range.InsertAfter就是插入到文档最后啊[/quote] 谢谢您的耐心解答,我查了msdn和结合其他资料解决了。谢谢啦。解决方法如下:方便其他遇到相同问题的同学借鉴 Selection this_selection = Globals.ThisAddIn.Application.Selection; this_selection.Range.Document.Range(this_selection.Range.Document.Content.End - 1, this_selection.Range.Document.Content.End - 1).InsertAfter("测试一下"); [/quote] ActiveDocument就是当前的活动文档 如果你用的是Microsoft.Office.Interop.Word的话 wordApplication.ActiveDocument 他也是你上面的 this_selection.Range.Document 你那个写成 this_selection.Range.Document.Range.InsertAfter("测试一下");就行了吧
Citron09 2016-10-11
  • 打赏
  • 举报
回复
引用 6 楼 stherix 的回复:
[quote=引用 5 楼 Citron09 的回复:] [quote=引用 3 楼 Citron09 的回复:] [quote=引用 1 楼 stherix 的回复:] 你所说的 文字的后面 指的是 文档最后 还是指定的文字后面 如果是指定的文字后面 那你可能需要搜索 如果只是文档最后 那么先 this_selection.EndKey(WdUnits.wdStory); 即可
this_selection.EndKey(WdUnits.wdStory); 这个是能实现功能,但是光标的位置也被变了啊。我想的是用户能在word输入内容的同时,这边也能自动添加到最后面,也就是说我的文字插入这个不能影响用户的输入,不会影响光标的位置,插入前光标在哪里,插入后光标也在哪里。我想过插入前记录光标位置,插入后把光标移动到那个位置,但是C#没有一个函数能直接实现这个功能么。谢谢解答[/quote] 但是这个不是插入到最后面。。是插入到光标后面。我想把Range 设为文字最后面怎么设置.[/quote] ActiveDocument.Range.InsertAfter就是插入到文档最后啊[/quote] 谢谢您的耐心解答,我查了msdn和结合其他资料解决了。谢谢啦。解决方法如下:方便其他遇到相同问题的同学借鉴 Selection this_selection = Globals.ThisAddIn.Application.Selection; this_selection.Range.Document.Range(this_selection.Range.Document.Content.End - 1, this_selection.Range.Document.Content.End - 1).InsertAfter("测试一下");
Citron09 2016-10-11
  • 打赏
  • 举报
回复
引用 6 楼 stherix 的回复:
[quote=引用 5 楼 Citron09 的回复:] [quote=引用 3 楼 Citron09 的回复:] [quote=引用 1 楼 stherix 的回复:] 你所说的 文字的后面 指的是 文档最后 还是指定的文字后面 如果是指定的文字后面 那你可能需要搜索 如果只是文档最后 那么先 this_selection.EndKey(WdUnits.wdStory); 即可
this_selection.EndKey(WdUnits.wdStory); 这个是能实现功能,但是光标的位置也被变了啊。我想的是用户能在word输入内容的同时,这边也能自动添加到最后面,也就是说我的文字插入这个不能影响用户的输入,不会影响光标的位置,插入前光标在哪里,插入后光标也在哪里。我想过插入前记录光标位置,插入后把光标移动到那个位置,但是C#没有一个函数能直接实现这个功能么。谢谢解答[/quote] 但是这个不是插入到最后面。。是插入到光标后面。我想把Range 设为文字最后面怎么设置.[/quote] ActiveDocument.Range.InsertAfter就是插入到文档最后啊[/quote] ActiveDocument是什么 。。
stherix 2016-10-11
  • 打赏
  • 举报
回复
引用 5 楼 Citron09 的回复:
[quote=引用 3 楼 Citron09 的回复:] [quote=引用 1 楼 stherix 的回复:] 你所说的 文字的后面 指的是 文档最后 还是指定的文字后面 如果是指定的文字后面 那你可能需要搜索 如果只是文档最后 那么先 this_selection.EndKey(WdUnits.wdStory); 即可
this_selection.EndKey(WdUnits.wdStory); 这个是能实现功能,但是光标的位置也被变了啊。我想的是用户能在word输入内容的同时,这边也能自动添加到最后面,也就是说我的文字插入这个不能影响用户的输入,不会影响光标的位置,插入前光标在哪里,插入后光标也在哪里。我想过插入前记录光标位置,插入后把光标移动到那个位置,但是C#没有一个函数能直接实现这个功能么。谢谢解答[/quote] 但是这个不是插入到最后面。。是插入到光标后面。我想把Range 设为文字最后面怎么设置.[/quote] ActiveDocument.Range.InsertAfter就是插入到文档最后啊
Citron09 2016-10-11
  • 打赏
  • 举报
回复
引用 3 楼 Citron09 的回复:
[quote=引用 1 楼 stherix 的回复:] 你所说的 文字的后面 指的是 文档最后 还是指定的文字后面 如果是指定的文字后面 那你可能需要搜索 如果只是文档最后 那么先 this_selection.EndKey(WdUnits.wdStory); 即可
this_selection.EndKey(WdUnits.wdStory); 这个是能实现功能,但是光标的位置也被变了啊。我想的是用户能在word输入内容的同时,这边也能自动添加到最后面,也就是说我的文字插入这个不能影响用户的输入,不会影响光标的位置,插入前光标在哪里,插入后光标也在哪里。我想过插入前记录光标位置,插入后把光标移动到那个位置,但是C#没有一个函数能直接实现这个功能么。谢谢解答[/quote] 但是这个不是插入到最后面。。是插入到光标后面。我想把Range 设为文字最后面怎么设置.
stherix 2016-10-11
  • 打赏
  • 举报
回复
引用 2 楼 Citron09 的回复:
this_selection.EndKey(WdUnits.wdStory); 这个是能实现功能,但是光标的位置也被变了啊。我想的是用户能在word输入内容的同时,这边也能自动添加到最后面,也就是说我的文字插入这个不能影响用户的输入,不会影响光标的位置,插入前光标在哪里,插入后光标也在哪里。我想过插入前记录光标位置,插入后把光标移动到那个位置,但是C#没有一个函数能直接实现这个功能么。谢谢解答
引用 3 楼 Citron09 的回复:
[quote=引用 1 楼 stherix 的回复:] 你所说的 文字的后面 指的是 文档最后 还是指定的文字后面 如果是指定的文字后面 那你可能需要搜索 如果只是文档最后 那么先 this_selection.EndKey(WdUnits.wdStory); 即可
this_selection.EndKey(WdUnits.wdStory); 这个是能实现功能,但是光标的位置也被变了啊。我想的是用户能在word输入内容的同时,这边也能自动添加到最后面,也就是说我的文字插入这个不能影响用户的输入,不会影响光标的位置,插入前光标在哪里,插入后光标也在哪里。我想过插入前记录光标位置,插入后把光标移动到那个位置,但是C#没有一个函数能直接实现这个功能么。谢谢解答[/quote] 不要移动光标的话 那就使用 ActiveDocument.Range.InsertAfter
Citron09 2016-10-11
  • 打赏
  • 举报
回复
引用 1 楼 stherix 的回复:
你所说的 文字的后面 指的是 文档最后 还是指定的文字后面 如果是指定的文字后面 那你可能需要搜索 如果只是文档最后 那么先 this_selection.EndKey(WdUnits.wdStory); 即可
this_selection.EndKey(WdUnits.wdStory); 这个是能实现功能,但是光标的位置也被变了啊。我想的是用户能在word输入内容的同时,这边也能自动添加到最后面,也就是说我的文字插入这个不能影响用户的输入,不会影响光标的位置,插入前光标在哪里,插入后光标也在哪里。我想过插入前记录光标位置,插入后把光标移动到那个位置,但是C#没有一个函数能直接实现这个功能么。谢谢解答
Citron09 2016-10-11
  • 打赏
  • 举报
回复
this_selection.EndKey(WdUnits.wdStory); 这个是能实现功能,但是光标的位置也被变了啊。我想的是用户能在word输入内容的同时,这边也能自动添加到最后面,也就是说我的文字插入这个不能影响用户的输入,不会影响光标的位置,插入前光标在哪里,插入后光标也在哪里。我想过插入前记录光标位置,插入后把光标移动到那个位置,但是C#没有一个函数能直接实现这个功能么。谢谢解答
stherix 2016-10-11
  • 打赏
  • 举报
回复
你所说的 文字的后面 指的是 文档最后 还是指定的文字后面 如果是指定的文字后面 那你可能需要搜索 如果只是文档最后 那么先 this_selection.EndKey(WdUnits.wdStory); 即可

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧