[英]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 )。 在这里下载。
我有同样的问题,在我的情况下<w:br />
标签有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.