Word文档中的C#列中断

时间:2019-07-12 09:33:25

标签: c# ms-word vsto office-interop word-automation

我在一个三列的word文档中工作。我可以在文本后插入分栏符,但之后不能在新列中写它。我想念什么?

Word.Paragraph oPara4;
var oRng = document.Bookmarks.get_Item(ref oEndOfDoc).Range;
oPara4 = document.Content.Paragraphs.Add(oRng);
oPara4.Range.InsertParagraphBefore();
oPara4.Range.Text = "Some Text Before the break";
oPara4.Format.SpaceAfter = 24;
oPara4.Range.InsertParagraphAfter();

// Column Break
oPara4.Range.InsertBreak(Word.WdBreakType.wdColumnBreak);

// New Text in new column

1 个答案:

答案 0 :(得分:1)

生成Word文档内容时,最好使用专用的Range对象来定义“目标”。

下面的示例代码为Range创建了一个oPara4对象。这样就可以将Range“折叠”到其端点。 (想起来就像在选择后按向右箭头以使选中的内容后出现闪烁的光标。)

在插入分栏符之前折叠Range可以确保在将新内容(分栏符)写入Range时,到此为止创建的所有内容都不会丢失。插入分栏符后,Range再次折叠到其端点,该端点现在位于下一列。

        Word.Paragraph oPara4;
        var oRng = doc.Bookmarks.get_Item(@"\EndOfDoc").Range;
        oPara4 = doc.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);
        rngPara.Text = "next";