【发布时间】:2019-12-19 19:24:36
【问题描述】:
我们正在使用表单,在当前项目中,我们正在使用 NPOI 对象,但由于单词元数据,npoi 没有返回第一页、偶数页和奇数页页眉/页脚。因此,我们正在尝试使用互操作来获得正确的结果,并且我们能够按照以下代码获得结果。但是我们再次面临按顺序读取页眉/页脚下的正文元素的挑战。
当前结果:
我能够阅读页眉/页脚的正文元素(表格和段落)。但不是按顺序排列的。我可以单独读取元素,例如“firstPageFooter .Paragraphs”和“firstPageFooter .Tables”
foreach (Section data in sections)
{
var tempVal = string.Empty;
HeadersFooters headersFooters = data.Footers;
bool isDifferentFirstPageHeaderFooter = Convert.ToBoolean(data.PageSetup.DifferentFirstPageHeaderFooter);
bool isOddAndEvenPagesHeaderFooter = Convert.ToBoolean(data.PageSetup.OddAndEvenPagesHeaderFooter);
if (isDifferentFirstPageHeaderFooter)
firstPageFooter = headersFooters[WdHeaderFooterIndex.wdHeaderFooterFirstPage].Range;
Tables headerTable = firstPageFooter .Tables;
StringBuilder tableBuilder = new StringBuilder();
foreach (Table table in headerTable)
{
foreach (Row row in table.Rows)
{
foreach (Cell cell in row.Cells)
{
tableBuilder.Append(cell.Range.Text);
}
}
}
StringBuilder paraBuilder = new StringBuilder();
var headerPara= firstPageFooter.Paragraphs;
foreach (Paragraph paragraph in headerPara)
{
paraBuilder.Append(paragraph.Range.Text);
}
} // Added by edit!!!
预期结果:
如果页眉/页脚正文元素包含表格和段落。第一个元素是表格,第二个是段落。所以单词应该以相同的顺序返回正文元素。
有人可以帮帮我吗?
【问题讨论】:
-
这不是很清楚。我认为我理解,但如果您可以使用edit 链接包含一个小例子来说明您的意思(来源和预期结果),这将有所帮助。根据我对问题的理解,如果您循环
Paragraphs集合并 test 每个段落(例如,它是否在表格中),您应该可以从那里开始工作。跨度> -
感谢辛迪的更新。对不起,不完整的细节。我已经更新了我的问题,希望它会很清楚。
标签: c# ms-word office-interop