OpenXML 在文档顶部或 table 之前插入烦人的回车符 return

OpenXML inserts annoying carriage return at top of document or before table

我正在将一个 table 插入到一个 word 文档中,该文档除了 header:

之外什么都没有
using (var doc = WordprocessingDocument.Open(targetfile, true))
{
    var body = doc.MainDocumentPart.Document.Body;
    var table = new Table();

    foreach (var package in consignment.Packages)
    {
        // Build the table rows here
    }

    doc.MainDocumentPart.Document.Append(table);
    doc.MainDocumentPart.Document.Save();
    doc.Save();
}

它运行良好,但是当我打开文档时,我看到文档开头有一个回车 return,所以我必须删除它以删除 space:

讨厌的space用黄色高亮显示,上面是header的底部,下面是我的table

如何让 OpenXML 不这样做? IE。在文档的顶部插入 table,而不是在回车 return

之后

请注意模板 docx

中没有回车 return

table 不在文档顶部的原因是:1) 文档始终至少包含一个段落,以及 2) table 附加到文档(意思是"at the end")。

相反,在第一段之前插入 table,如下所示:

var body = doc.MainDocumentPart.Document.Body;
var table = new Table();

foreach (var package in consignment.Packages)
{
    // Build the table rows here
}
Paragraph firstPara = doc.Body.Descendants<Paragraph>().First();
body.InsertBefore(table, firstPara);

请注意 table 之后会有一个段落标记 - Word 需要这样做才能存储有关 table 的信息。 (主要是它在页面上的位置。)