2
我試圖設計一個表格,最後一個單元格中有3個附加表格。喜歡這個。 C#中的嵌套表格
我已經設法將第一個嵌套表放入第4行,但我的第二個嵌套表進入第一個表的單元格(1,1)。
var wordApplication = new Word.Application();
wordApplication.Visible = true;
var wordDocument = wordApplication.Documents.Add();
var docRange = wordDocument.Range();
docRange.Tables.Add(docRange, 4, 1);
var mainTable = wordDocument.Tables[1];
mainTable.set_Style("Table Grid");
mainTable.Borders.Enable = 0;
mainTable.PreferredWidthType = Word.WdPreferredWidthType.wdPreferredWidthPercent;
mainTable.PreferredWidth = 100;
docRange.Collapse(Word.WdCollapseDirection.wdCollapseStart);
var phoneRange = mainTable.Cell(4, 1).Range;
phoneRange.Collapse(Word.WdCollapseDirection.wdCollapseStart);
phoneRange.Tables.Add(phoneRange, 3, 2);
var phoneTable = mainTable.Cell(4, 1).Tables[1];
phoneTable.set_Style("Table Grid");
phoneTable.Borders.Enable = 0;
phoneTable.AutoFitBehavior(Word.WdAutoFitBehavior.wdAutoFitContent);
phoneTable.Rows.RelativeHorizontalPosition = Word.WdRelativeHorizontalPosition.wdRelativeHorizontalPositionMargin;
phoneRange.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
我已經試過塌陷的範圍,增加段落然後再次塌陷的範圍內。沒有運氣。我發現這個post和許多類似的,但我必須失去一些東西。
謝謝你的時間。
它通常有助於像這樣的情況在代碼中添加一行:phoneRange.Select();並以此代碼執行結束。看看範圍的實際位置。我的直覺是你肯定在正確的軌道上,但可能需要移動Range.End回到一個角色或類似的東西:phoneRange.MoveEnd(ref oWdUnitCharacter,ref oMinusOne); FWIW你的更大的問題可能會變得很好地在同一行中彼此相鄰的表格。 –
確實,最大的問題是將嵌套表彼此對齊。你必須使用浮動表來實現('Table.Rows.WrapAroundText = true;') –
@CindyMeister在'phoneRange.MoveEnd(Word.WdUnits.wdCharacter,-1)中添加; phoneRange.Tables.Add(phoneRange,3,1);'產生錯誤 _對象引用錶行的結尾,表中的行結果會進入上面的行。我嘗試了各種組合,但沒有更多。感謝您一直以來的幫助。 – Beresford