使用 OpenXML 在 Word 中插入换行符

问题描述 投票:0回答:4

我正在使用 openxml WordProcessingDocument 打开 Word 模板并将占位符 x1 替换为字符串。除非我需要字符串包含换行符,否则这工作正常。 如何将 x1 替换为可能包含 word 可以识别的换行符的文本?我努力了 但这些不起作用

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

c# ms-word openxml
4个回答
113
投票

要插入换行符,您必须将

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>

31
投票

这是一个 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);
        }
}

14
投票

虽然这个问题已经得到解答,但我还有另一种方法来解决这样的问题:

如何使用 OpenXML 制作 XXX??

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

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

12
投票

我有同样的问题,就我而言,

<w:br />
标签有效。

© www.soinside.com 2019 - 2024. All rights reserved.