C# Word 文档中的分栏符

标签 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

最佳答案

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

下面的示例代码为 oPara4 创建了一个 Range 对象。这使得将 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";

关于C# Word 文档中的分栏符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57004217/

相关文章:

c# - 无法加载文件或程序集 'System.Net.Http, Version=2.2.29.0'

c# - 解决交互组合爆炸的最佳方法是什么?

c# - Windows 与 VCE 上的 LDAP 绑定(bind)

Java:XWPFWordExtractor.getText() 抛出 NullPointerException

c# - InstallShield LE 错误 : This installation package is not supported by this processor type

.net - VSTO 对 COM 对象/内存使用的引用

c# - 维护安全的 MySQL 连接

c# - 使用 HttpClient 时出现 HttpRequestException?

vba - 如何获取word 2003文档的模板路径

c# - 在 C# 中用同一位置的图像替换文本