在表格结束后立即生成文本

时间:2016-07-23 12:20:41

标签: c# .net ms-word office-interop

我正在使用C#Interop生成一个单词报告。我正在尝试生成一系列使用数据库填充数据的表。表后面应该有一个描述表中数据的文本。所需的布局如下:

Required Layout

报告基于模板,表格和相应的详细信息将根据插入模板的书签生成。问题是,当我尝试在表格后填充文本时,文本将插入到下一页的开头。下面是我用来填充表格的代码片段。

foreach (var obj in list)
{
    Table vulTable = detailsRange.Tables.Add(detailsRange, 1, 2, ref oMissing, ref oMissing);
    vulTable.PreferredWidthType = WdPreferredWidthType.wdPreferredWidthPercent;
    vulTable.Range.InsertBefore("Text");                
    vulTable.Range.Font.Size = 12;

    vulTable.Borders.InsideLineStyle = WdLineStyle.wdLineStyleSingle;
    vulTable.Borders.OutsideLineStyle = WdLineStyle.wdLineStyleSingle;        

    Row r1 = vulTable.Rows.Add(ref oMissing);
    //Table generation logic to generate other rows

    detailsRange.InsertBreak(WdBreakType.wdColumnBreak);
    object strt = vulTable.Range.End;
    Range r = doc.Range(ref strt, ref strt);

    Paragraph p = r.Paragraphs.Add(ref oMissing);
    p.Range.InsertAfter("Details ABCD");
    p.Range.InsertBreak(WdBreakType.wdColumnBreak);
    p.Range.Bold = 1;
    p.Range.Underline = WdUnderline.wdUnderlineSingle;
    p.Range.InsertParagraphAfter();
}

作为上述代码的结果,“详细信息ABCD”文本将在下一页的开头填充,而不是作为表的延续。哪些修改或应采用任何其他方法除了使用当前范围的结尾插入详细信息部分之外?任何帮助都非常感谢。

1 个答案:

答案 0 :(得分:1)

ColumnBreak是单个列文档中的新页面。

根据您的上述说明,您的计划中应该没有任何休息时间。

(嗯,不要把它们与html .br混淆;以防万一你......: - )