【问题标题】:Inserting A Line Break (Not A Paragraph Break) Programatically To A Word Document以编程方式在 Word 文档中插入换行符(不是分段符)
【发布时间】:2014-06-12 20:46:22
【问题描述】:

我在 C# 中使用适用于 Visual Studio 2013 的 Office 开发人员工具。从 Word 2007 开始,添加“\n”字符会添加一个换行符(这会比 Word 中的换行符添加更多空间)。如何在文档中添加换行符?我试过 "\n"、"\r" 和 "\r\n" 所有这些似乎都添加了一个分节符。

【问题讨论】:

    标签: c# office-interop


    【解决方案1】:

    事实证明,Word 使用垂直制表符作为其换行符。我能够使用“\v”字符将它们添加到范围。详情请见What is a vertical tab?

    【讨论】:

      【解决方案2】:

      我尝试过使用几个项目,例如:

      • </br>
      • \n\r
      • \u2028\n
      • <w:br/>

      它们不起作用,但是当简单地将所需字符替换为 <br/> 时,效果非常好!

      不得不提的是,我使用的是 VS2013 和 MS Office2016。

      【讨论】:

        【解决方案3】:

        Word 使用“行分隔符”和“段落分隔符”Unicode 字符,代码点分别为 2028 和 2029,来表示这些相应类型的中断。

        使用 Unicode 字符“行分隔符”,在 C# 中表示为 '\u2028'。将此与换行符 \n 结合使用。

        【讨论】:

        • 不错的发现!我不知道这些存在
        • 感谢您的快速回复。不幸的是,当我使用 '\u2028' 时,它会为现有行增加空间,但不会移动到下一行。奇怪的是,'\u2029' 也会发生同样的事情。
        • @user3731528 我已经更新了答案。我相信你需要"apple\u2028\nbanana" 会在apple 和banana 之间换行,"apple\u2029\nbanana" 会换段。
        • 再次感谢您的帮助。不幸的是,即使使用“\u2028\n”,它似乎仍然会给我断句。当我按下 (对于 word 中的换行符)时,它在行之间添加的空间比程序生成的文本少。
        • @user3731528 你能得到包含一些“shift+enter”换行符的word文档部分的string内容吗?如果您有这样的string,请检查string 的各个char 元素以找出构成MS Word“shift+enter”换行符的Unicode 字符。我的回答是假设换行符表示为适当的 Unicode 字符,但这部分是猜测。如果您进行建议的检查,或者在您的问题中提供像您一样解析文档的代码,我可以尝试给您一个更好的答案。
        【解决方案4】:

        这对我有用: stringBuilder.Append("
        ");

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-05-14
          • 1970-01-01
          • 2021-09-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多