我正在使用 openxml WordProcessingDocument 打开 Word 模板并将占位符 x1 替换为字符串。除非我需要字符串包含换行符,否则这工作正常。 如何将 x1 替换为可能包含 word 可以识别的换行符的文本?我努力了 但这些不起作用
为了进一步解释打开单词模板时,我将其读入 StreamReader,然后使用 .Replace 替换 x1。
要插入换行符,您必须将
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# 函数,它将接受一个字符串,按换行符将其拆分并在 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)。 在此下载。
我有同样的问题,就我而言,
<w:br />
标签有效。