C# Word 文档中的分栏符

C# Column Break in Word document

我在一个三栏的 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

生成 Word 文档内容时,最好使用专用 Range 对象来定义 "targets"。

下面的示例代码为 oPara4 创建了一个 Range 对象。这使得 "collapse" 的 Range 到其 end-point 成为可能。 (可以把它想象成在有选择时按 right-arrow 以在选择后获得闪烁的光标。)

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

        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";