繁体   English   中英

使用 OpenXML 在 Word 中插入换行符

[英]Inserting newlines in Word using OpenXML

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

只是为了进一步解释当打开 word 模板时,我将它读入 StreamReader,然后使用 .Replace 替换 x1。

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

例子:

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# 函数,它将接受一个字符串,在换行符处拆分它并在 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 );
    }

尽管这个问题已经得到回答,但我还有另一种方法来解决诸如:

如何使用 OpenXML 制作 XXX?

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

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

我有同样的问题,在我的情况下<w:br />标签有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM