【问题标题】:How to prevent new lines appearing after inserting Paragraphs with OpenXML?如何防止使用 OpenXML 插入段落后出现新行?
【发布时间】:2013-07-18 15:27:26
【问题描述】:

我正在尝试将文本插入到 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")));

但这产生了一个无效的文件。

如何防止新行插入?

【问题讨论】:

    标签: c# openxml openxml-sdk


    【解决方案1】:

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

    添加新段落时
    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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-04
      • 1970-01-01
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多