C#如何在单词段落范围

时间:2015-07-06 17:14:48

标签: c# ms-word

我用Word.ApplicationClass()

读取WORD文档

并且文档样式很友好( doc

  

AAAAA

     

BBBB

     ①AAA②BBB③CCC(第三部分为红色)④DDD

我使用

得到每一行
  

String docLine = doc.paragraphs [i] .range.text.Trim();

然后运行[doc.paragraphs [3] .range.text.Trim();]得到(第3行

  ①AAA②BBB③CCC(第三部分为红色)④DDD

![在此处输入图像描述] [2]包含4个不同颜色的单词的行。

这是我的问题,当我想获得该行的红色第三部分时 我不知道如何得到它。

因为我不知道如何设置段落[3]。范围中的子范围,其中包含我想要的内容。

我已经检查了MSDN,但发现你可以设置一个Range的开始和结束文件。范围。

所以我要问的是,有人可以告诉我如何在paragraphy [i]。范围内设置子范围。所以我可以使用range.font.colorindex

如果没有办法那么那么当我阅读该行的每一个prat时,如何获取颜色信息,以便当我读到我能够知道的红色部分时。

由于

1 个答案:

答案 0 :(得分:0)

谢谢你的帮助。香港专业教育学院找到了找到我想要的部分的方法。 从这个阙:Re-defne a Paragraph Range to Include a Subset of Words in the Paragraph 好像我没有找到正确的哼〜

使用

  

Microsoft.Office.Interop.Word.Range rng =   doc.paragraphs [3] .Range.Duplicate;

我可以得到一个可操作的范围(你不能改变paragraphs.range),

并使用

  

rng.MoveEnd(WdUnits.wdCharacter,endPos - rng.Characters.Count);   rng.MoveStart(WdUnits.wdCharacter,startPos);

我可以找到我想要的东西

提示:range.setRange(int start,int end)总是(我认为)相对于文档的开头和结尾。当你尝试在一个句子或一条线上工作时,这是无助的。