2016-07-23 59 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混淆;萬一你... :-)

相關問題