添加新段落时Openxml C#

时间:2014-10-30 11:49:13

标签: c# openxml

首先我在openxml中创建了一个段落

Paragraph paragraph1 = new Paragraph();
try
{

    ParagraphProperties paragraphProperties1 = new ParagraphProperties();
    ParagraphStyleId paragraphStyleId1 = new ParagraphStyleId() { 
                                                     Val = "Correspondence" };
    paragraphProperties1.AppendChild(paragraphStyleId1);
    Run run1 = new Run();
    Text text1 = new Text();
    text1.Text = array[1];
    run1.AppendChild(text1);
    paragraph1.AppendChild(paragraphProperties1);
    paragraph1.AppendChild(run1);
}
catch { }

之后我逐段遍历我的文档并添加我上面描述的段落。

var ps = wordDoc1.MainDocumentPart.Document.Descendants<Paragraph>();
bool addBool;
addBool = false;                        

foreach (Paragraph pg in ps)
{
    if (addBool == true)
    {                                
        //pg.Append(paragraph1);
        //wordDoc1.MainDocumentPart.Document.Save();
        break;
    }
    if (pg.InnerXml.Contains(@"w:val=""Author""") == true)
    {                                
        addBool = true;                                
        pg.Append(paragraph1);
        //pg.InnerXml = pg.InnerXml + array[0];
        wordDoc1.MainDocumentPart.Document.Save();
        break;

    }   
}

因此,它只会将段落附加到选择段落中。

我的问题: 如何在所选段落的正下方插入新段落? 注意**它不应合并到段落中,但应该创建一个新的段落

1 个答案:

答案 0 :(得分:0)

您可以使用pg.InsertAfter方法插入新段落。这样做会自动在段落之前和之后添加段落分隔符。