我正在尝试设计一个在最后一个单元格中具有3个其他表的表。像这样。
c# - Word中的C#嵌套表-LMLPHP

我设法将第一个嵌套表放入第4行,但是我的第二个嵌套表将进入第一个表的cell(1,1)。

c# - Word中的C#嵌套表-LMLPHP

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的实际位置。现在,您可以使用键盘测试“范围”所在的位置,以便成功插入下一张表。

既然您说phoneRange在第三行之外选择,而不是使用phoneRange,请尝试将一个新的Range对象设置为phoneTable.Range,然后将其折叠到端点。

关于c# - Word中的C#嵌套表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34061727/

10-10 09:38