OpenXml SDK学习笔记(5):最后的调试
作者:互联网
上一篇笔记结束的时候,我对比了一下两个文档。那已经是基本一模一样了。然后,我通过电脑微信发给客户。客户收到后很惊讶,居然是空白?然后,我也用手机微信打开了这个文件,一看居然真的是空白,非常头痛。于是,我拿电脑打开这个文件,再另存为一下,再发到手机,发现居然神奇的可以看了。也就是说,肯定是我哪里的代码出了问题,对比一下我生成的代码和手机可以看的代码(本来想截图的,无奈被我删了),就可以发现原来可以用的代码<w:p>是放在<w:body>里的。而我的代码就直接写在了w:document里。啊。。。这。。。于是,查了一下代码,就可以发现我的AddParagraph没有将段落新建在Document.MainDocumentPart.Body里。(就这个小问题,我调了至少30分钟)
那既然找到了,就好办了,改一下代码咯:
1 #region 初始化文档 2 protected void InitializeDocument() 3 { 4 var doc = InternalDocument; 5 if (doc.MainDocumentPart == null) 6 { 7 doc.AddMainDocumentPart(); 8 } 9 10 if (doc.MainDocumentPart.Document == null) 11 { 12 doc.MainDocumentPart.Document = new Document(); 13 } 14 15 if (doc.MainDocumentPart.Document.Body == null) 16 { 17 doc.MainDocumentPart.Document.Body = new Body(); 18 } 19 } 20 #endregion
public CompositeElementBase AppendParagraph(WordStyles style) { var body = InternalDocument.MainDocumentPart.Document.Body; Paragraph para = new Paragraph(); body.Append(para); WordParagraph wpara = new WordParagraph(para, this); wpara.SetStyle(style); return wpara; }
就这么简单,然后就可以正常使用啦!客户收到文件,非常满意,这个功能变更就此完成。
标签:Body,MainDocumentPart,doc,代码,new,Document,OpenXml,调试,SDK 来源: https://www.cnblogs.com/Pray4U/p/15535914.html