我正在尝试在OpenXML .docx文件中将文本插入Bookmarks
,但它会在每个Paragraph
之后插入一个新行。我该如何防止这种情况?
例如为:
我通过查找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")));
但是这会产生无效的文件。
如何阻止插入新行?
答案 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();