如何防止在使用OpenXML插入段落后出现新行?

时间:2013-07-18 15:27:27

标签: c# openxml openxml-sdk

我正在尝试在OpenXML .docx文件中将文本插入Bookmarks,但它会在每个Paragraph之后插入一个新行。我该如何防止这种情况?

例如为: enter image description here

我通过查找Bookmarks以及以下内容将文本添加到文档中:

var bmk= body.Descendants<BookmarkStart>().FirstOrDefault(xx => xx.Name == "myBMK");
var parent = bmk.Parent;

parent.InsertBeforeSelf(GetText("DaveCompany"));

其中GetText定义为:

public static Paragraph GetText(string cellText)
{
    var run = new Run(new Text(cellText));

    return new Paragraph(run);
}

我尝试从Paragraph中剥离文本,例如

    parent.InsertBeforeSelf(new Run(new Text("DaveCompany")));

但是这会产生无效的文件。

如何阻止插入新行?

1 个答案:

答案 0 :(得分:0)

事实证明它正在添加额外的行,因为Bookmark在它自己的段落中。当我用

添加新段落时
parent.InsertBeforeSelf(GetText("DaveCompany"));

容器表格单元格中有2个段落,文档显示为

解决方法是在插入文本后删除书签的父段落,例如

var bmk= body.Descendants<BookmarkStart>().FirstOrDefault(xx => xx.Name == "myBMK");
var parent = bmk.Parent;

parent.InsertBeforeSelf(GetText("DaveCompany"));
parent.Remove();