OpenXML C#:在文字处理中更改单词的颜色

时间:2015-08-11 10:36:23

标签: c# openxml wordprocessingml

我想改变一个单词的颜色。我在runproperties中添加颜色,但不改变单个单词的颜色,而是改变整行的颜色。看到代码。

void AppendStyle(string document, string word, string col)
    {
        try
        {
            using (WordprocessingDocument wordDoc =
                    WordprocessingDocument.Open(document, true)) //Open file from path
            {
                var body = wordDoc.MainDocumentPart.Document.Body;
                var paras = body.Elements<Paragraph>();
                DocumentFormat.OpenXml.Wordprocessing.Color color = new DocumentFormat.OpenXml.Wordprocessing.Color();

                foreach (var para in paras)
                {
                    foreach (var run in para.Elements<Run>())
                    {
                        foreach (var text in run.Elements<Text>())
                        {
                            if (text.Text.Contains(word))
                            {

                                color.Val = col;
                                run.AppendChild(color);
                                return;
                            }

                        }
                    }
                }

                wordDoc.Close(); // close the template file

            }

1 个答案:

答案 0 :(得分:0)

当您只为一个句子的一部分着色时,Word所做的是它将句子分成多个运行。你需要做同样的事情。