2016-07-23 28 views
0

我正在使用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

你为什么要插入2个wdColumnBreak类型划分?也许你打算插入两个连续类型的中断? (虽然我不知道你为什么要他们。) – 2016-07-23 15:05:34

回答

1

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

从上面的描述中可以看出,程序中不应该有任何中断。

(嗯,不要用HTML .BR混淆;万一你... :-)

相关问题