【发布时间】:2019-07-13 16:00:14
【问题描述】:
我在一个三栏 Word 文档中工作。我想在顶部的文档列 flush 中插入一个新表格。不幸的是,我不可能在没有段落的情况下插入它。我在 break 列之后插入此表(参见代码)。如果我用许多段落替换分栏符,我可以将表格放在顶部。不幸的是,这种方法不实用并且不太容易以编程方式实现。
Word.Paragraph oPara4;
var oRng = document.Bookmarks.get_Item(@"\EndOfDoc").Range;
oPara4 = document.Content.Paragraphs.Add(oRng);
Word.Range rngPara = oPara4.Range;
rngPara.InsertParagraphBefore();
rngPara.Text = "Some Text Before the break";
oPara4.Format.SpaceAfter = 24;
rngPara.InsertParagraphAfter();
rngPara.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
// Column Break
rngPara.InsertBreak(Word.WdBreakType.wdColumnBreak);
rngPara.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
// Create new table in new column (after column break)
oRng = document.Bookmarks.get_Item(@"\EndOfDoc").Range;
Word.Table tableCopy = document.Tables.Add(oRng, 1,1, ref oMissing, ref oMissing);
【问题讨论】:
-
在前面添加一个段落(= 在第一列上方)是解决表格在页面上的高度相等的问题的简单方法。
-
好方法!问题是我有跨列的表格。所以开始比新列中的中断更远。
-
我在 Word 和 LibreOffice 的屏幕截图中添加了一些信息,但我认为您在 Word 中发现了一个 BUG。 (如果我正确理解了您的问题!)
标签: c# ms-word office-interop word-automation word-interop