C#互操作Word 2013在一行内多次替换子字符串格式

本文关键字:替换 格式 字符串 一行 2013 Word 互操作 | 更新日期: 2023-09-27 18:20:11

我当前的代码只将单词"color"的第一个出现加粗。

    public void Foo()
    {
        string text = "color 1, color 2, color 3";
        Paragraph parag = doc.Content.Paragraphs.Add(ref missing);
        parag.Range.Text = text;
        int index = text.IndexOf("color");
        object oStart = parag.Range.Start + index;
        object oEnd = parag.Range.Start + index + 4;
        Range subRange = doc.Range(ref oStart, ref oEnd);
        subRange.Bold = 1;
        parag.Range.InsertParagraphAfter();
    }

我应该把代码上的什么改为粗体"颜色"一词的所有出现,这样句子就可以写成了

颜色1,彩色2,3

C#互操作Word 2013在一行内多次替换子字符串格式

您需要使用for循环。。

这是代码:

int i = 0;
int index = text.IndexOf("color", i);
while (index > 0) 
{
    object oStart = parag.Range.Start + index;
    object oEnd = parag.Range.Start + index + 4;
    Range subRange = doc.Range(oStart, oEnd);
    subRange.Bold = 1;
    i = index + 4;
    index = text.IndexOf("color", i);
}

试试这个。。。。。。。