2013-07-18 43 views
0

我試圖在OpenXML.docx文件中插入文本到Bookmarks,但它在每個Paragraph後插入一個新行。我怎樣才能防止這一點?如何防止在使用OpenXML插入段落後出現新行?

如: enter image description here

我通過查找Bookmarks有以下添加文本文檔:

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

    return new Paragraph(run); 
} 

我有:

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

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

,其中作爲GetText定義嘗試從Paragraph中剝離文本,例如

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

但是,這產生了一個無效的文件。

如何防止插入新行?

回答

0

原來它增加了額外的一行,因爲書籤在它自己的段落中。當我加入新的段落與

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(); 
相關問題