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 的信息。 (主要是它在页面上的位置。)
我正在将一个 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
中没有回车 returntable 不在文档顶部的原因是: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 的信息。 (主要是它在页面上的位置。)