【发布时间】:2014-06-12 20:46:22
【问题描述】:
我在 C# 中使用适用于 Visual Studio 2013 的 Office 开发人员工具。从 Word 2007 开始,添加“\n”字符会添加一个换行符(这会比 Word 中的换行符添加更多空间)。如何在文档中添加换行符?我试过 "\n"、"\r" 和 "\r\n" 所有这些似乎都添加了一个分节符。
【问题讨论】:
标签: c# office-interop
我在 C# 中使用适用于 Visual Studio 2013 的 Office 开发人员工具。从 Word 2007 开始,添加“\n”字符会添加一个换行符(这会比 Word 中的换行符添加更多空间)。如何在文档中添加换行符?我试过 "\n"、"\r" 和 "\r\n" 所有这些似乎都添加了一个分节符。
【问题讨论】:
标签: c# office-interop
事实证明,Word 使用垂直制表符作为其换行符。我能够使用“\v”字符将它们添加到范围。详情请见What is a vertical tab?。
【讨论】:
我尝试过使用几个项目,例如:
</br>\n\r\u2028\n<w:br/>它们不起作用,但是当简单地将所需字符替换为 <br/> 时,效果非常好!
不得不提的是,我使用的是 VS2013 和 MS Office2016。
【讨论】:
Word 使用“行分隔符”和“段落分隔符”Unicode 字符,代码点分别为 2028 和 2029,来表示这些相应类型的中断。
使用 Unicode 字符“行分隔符”,在 C# 中表示为 '\u2028'。将此与换行符 \n 结合使用。
【讨论】:
"apple\u2028\nbanana" 会在apple 和banana 之间换行,"apple\u2029\nbanana" 会换段。
string内容吗?如果您有这样的string,请检查string 的各个char 元素以找出构成MS Word“shift+enter”换行符的Unicode 字符。我的回答是假设换行符表示为适当的 Unicode 字符,但这部分是猜测。如果您进行建议的检查,或者在您的问题中提供像您一样解析文档的代码,我可以尝试给您一个更好的答案。
这对我有用:
stringBuilder.Append("
");
【讨论】: