我使用openxml WordProcessingDocument打开Word模板,并用字符串替换占位符x1。这工作正常,除非我需要字符串包含换行符。 如何用文本替换x1可能包含单词可识别的换行符?我试过\ n \ r但是这些不起作用
进一步解释当打开单词模板时,我将其读入StreamReader,然后使用.Replace替换x1。
答案 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.