在Word中使用OpenXML插入换行符

我正在使用openxml WordProcessingDocument来打开一个Word模板并用一个stringreplace占位符x1。 这工作正常,除非我需要string包含换行符。 如何用文本replacex1可能包含换行符可以识别的换行符? 我曾尝试\ n \ r但这些不起作用

只是为了进一步解释什么时候打开单词模板,我将它读入StreamReader然后使用.Replace来replacex1。

要插入换行符,您必须添加一个Break实例到Run

例:

 run.AppendChild(new Text("Hello")); run.AppendChild(new Break()); run.AppendChild(new Text("world")); 

生成的XML将如下所示:

 <w:r> <w:t>Hello</w:t> <w:br/> <w:t>world</w:t> </w:r> 

这里有一个C#函数,它将接收一个string,将其拆分并在OpenXML中呈现。 要使用,实例化一个运行并使用string将其传递给该函数。

 void parseTextForOpenXML( Run run, string textualData ) { string[ ] newLineArray = { Environment.NewLine }; string[ ] textArray = textualData.Split( newLineArray, StringSplitOptions.None ); bool first = true; foreach ( string line in textArray ) { if ( ! first ) { run.Append( new Break( ) ); } first = false; Text txt = new Text( ); txt.Text = line; run.Append( txt ); } 

我有同样的问题,并在我的情况下<w:br />标记工作。

尽pipe这个问题已经得到解答,但我还有另一种解决问题的方法:

我如何使XXX与OpenXML?

在这种情况下,您可以使用强大的Microsoft OpenXML生产力工具 (也称为OpenXmlSdkTool )。 在这里下载。

  1. 创build一个新的办公文档
  2. 将部分添加到您想用OpenXML SDK重现的文档中。
  3. 使用Microsoft OpenXML生产力工具打开办公文档
  4. 点击“Reflect Code”
  5. 在右边你会看到你的文件反映到C#代码。