zoukankan      html  css  js  c++  java
  • 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;
    }

    就这么简单,然后就可以正常使用啦!客户收到文件,非常满意,这个功能变更就此完成。

  • 相关阅读:
    关于document.body.scrollTop用法
    set回顾
    用户登录与注册
    编写通讯录2
    利用字典的特性编写一个通讯录
    shelve模块
    shutil模块
    列表的拓展
    随机生成验证码2
    递归与欧几里得算法结合求最大公约数
  • 原文地址:https://www.cnblogs.com/Pray4U/p/15535914.html
Copyright © 2011-2022 走看看