代码之家  ›  专栏  ›  技术社区  ›  Bassie

OpenXML在文档顶部或表之前插入回车符

  •  2
  • Bassie  · 技术社区  · 7 年前

    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 回复  |  直到 7 年前
        1
  •  2
  •   Cindy Meister    7 年前

    表格不在文档顶部的原因是: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);