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

时间:2018-11-19 14:34:14

标签: c# ms-word openxml openxml-sdk

我要在Word文档中插入表格,该文档中除标题外,文档不包含任何内容:

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();
}

它运作良好,但是当我打开文档时,我看到文档的开头有一个回车符,因此我必须删除它以删除空格:

enter image description here

烦人的空间以黄色突出显示,标题的底部在上方,我的表格在下方。

如何使OpenXML不这样做?即将表格插入文档顶部,而不是在回车符之后

请注意,模板docx中没有回车符

1 个答案:

答案 0 :(得分:2)

表格不在文档顶部的原因是:1)文档始终至少包含一个段落; 2)表格正被附加(意思是“最后”)。

相反,将表插入第一段之前,如下所示:

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);

请注意,表格后将有一个段落标记-Word要求此标记才能存储有关表格的信息。 (主要是它在页面上的位置。)