2016-03-30 78 views
2

我想在另一個表格內(特定單元格內)添加一個表格。 我找不到將Table對象添加到Cell對象的方法。 這簡直不可能嗎?MigraDoc - 鱗狀/嵌套表?

或者,我可能會合並一些單元格,但在單元合併的MigraDoc網站中找不到任何示例。

這裏是我的代碼:

Table parentTable = new Table(); 
parentTable.AddColumn(Unit.FromCentimeter(9)); 
Row parentRow = parentTable.AddRow(); 
Cell parentCell = parentRow.Cells[0]; 

Table currentTable = new Table(); 
currentTable.AddColumn(Unit.FromCentimeter(4)); 
Row currentRow = currentTable.AddRow(); 
currentRow.Cells[0].AddParagraph("blablabla"); 

parentCell.Add(currentTable); // this does not work 

回答

6

發票示例使用合併:
http://www.pdfsharp.net/wiki/Invoice-sample.ashx

的關鍵詞是MergeRight和MergeDown。使用MergeRight=1來獲得跨兩列的單元格。

我認爲合併是最好的方法,如果它不太複雜。

您可以將TextFrame添加到Cell並將Table添加到TextFrame以實現嵌套表。然而,你將不得不處理行高,因爲當TextFrame的內容增長時,表單元格不會自動增長。

在使用通用Add方法的單元格中,將Table添加到CellParagraph是一種技巧。 代碼的黑客,增加了一個表,表單元格:

parentCell.Elements.Add(currentTable); 

這是一個未公開的特性。合併是推薦的方法。

單元格不會中斷到下一頁,因此向單元格添加表格僅適用於小嵌套表格。

+0

它工作正常。也適用於TextFrame。感謝你和發票樣本的鏈接! – olivier

+0

爲'元素'技巧+1。在單元格中使用.AddTable()速記以避免混淆會很好嗎? – Farlop