繁体   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