使用OpenXML在Word中插入换行符

时间:2010-05-20 07:53:25

标签: c# ms-word openxml

我使用openxml WordProcessingDocument打开Word模板,并用字符串替换占位符x1。这工作正常,除非我需要字符串包含换行符。 如何用文本替换x1可能包含单词可识别的换行符?我试过\ n \ r但是这些不起作用

进一步解释当打开单词模板时,我将其读入StreamReader,然后使用.Replace替换x1。

4 个答案:

答案 0 :(得分:84)

要插入换行符,您必须向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>

答案 1 :(得分:23)

这是一个C#函数,它将获取一个字符串,将其拆分为换行符并在OpenXML中呈现它。要使用,请实例化一个Run并将其传递给带有字符串的函数。

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 );
    }

答案 2 :(得分:10)

我遇到同样的问题,在我的情况下<w:br />代码已经完成。

答案 3 :(得分:8)

尽管已经回答了这个问题,我还有另一种方法可以解决以下问题:

如何使用OpenXML制作XXX?

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

  1. 创建新的办公文档
  2. 使用OpenXML SDK将部件添加到要重现的文档中。
  3. 使用 Microsoft OpenXML生产力工具
  4. 打开office文档
  5. 点击“反映代码”
  6. 在右侧,您将看到您的文档已反映到C#代码中。