简介:处理流程表单数据以WordXML形式填充Word文档表格换行符丢失问题
//将前台收集的XML中“$”循环拆分成"<w:br/>" by pengyc 解决表格填充word换行符丢失问题 2016-02-04
string val=cells[k].InnerText;
if (val.IndexOf("\r\n") > )
{
//处理多行数据
string[] arrVals = val.Split('\r\n');
tNode.InnerText = arrVals[];
for (var it = ; it < arrVals.Length; it++)
{
XmlNode brNode = xd.CreateElement("w:br", "http://schemas.microsoft.com/office/word/2003/wordml");
brNode.Attributes.Append(xd.CreateAttribute("w:mysoft", "http://schemas.microsoft.com/office/word/2003/wordml"));
XmlNode multilineNode = xd.CreateElement("w:t", "http://schemas.microsoft.com/office/word/2003/wordml");
multilineNode.Attributes.Append(xd.CreateAttribute("w:mysoft", "http://schemas.microsoft.com/office/word/2003/wordml"));
tNode.AppendChild(brNode);
multilineNode.InnerText = arrVals[it];
tNode.AppendChild(multilineNode);
}
}
else {
tNode.InnerText = val;
}
以下是解决此问题过程中网上找的关于WordXMl学习的资料链接,比较详细.
http://www.cnblogs.com/forlina/archive/2011/06/09/2076559.html
Web页面的换行符(\r\n)和word本身的换行不一样,特别表现在word的table表格(说明:此处是以书签的形式填充Table)
但是Word表格外的域支持换行符“\r\n”,如下图:
如果在word的table中使用\r\n换行,word不会转换。
所以最终以<w:br/>替换word文档表格单元格的换行符,替换代码块如上所述。