簡體   English   中英

使用OpenXml SDK 2.0在Word中克隆ParagraphProperties

[英]Clone ParagraphProperties in Word using OpenXml SDK 2.0

我正在通過Open XML SDK 2.0在Word文檔中生成新段落。 我有第一段帶有屬性的段落,我想將它們附加到所有新生成的段落中。

像這樣的東西:

var _texts = new List<string>() { "Text 1", "Text 2", "Text 1", "Text 4"};
var sdtBlock = wordDoc.MainDocumentPart.RootElement.Descendants<Paragraph>().First();
foreach (string _t in _texts)
{
    Paragraph p = new Paragraph();
    p.Append(sdtBlock.ParagraphProperties);
    p.Append(new Run(new Text(_t)));
    sdtBlock.InsertAfterSelf<Paragraph>(p);
}

執行此代碼將引發異常:“無法插入OpenXmlElement“ newChild”,因為它是樹的一部分。“ 有任何想法嗎?

您需要使用CloneNode()方法制作要添加到新段落中的ParagraphProperties實例的副本,例如

p.Append(sdtBlock.ParagraphProperties.CloneNode(true));

否則,您將得到所描述的異常(因為您將在同一文檔的兩個不同位置添加原始節點,這是不允許的,而不是您打算做的事情)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM