1. 程式人生 > 其它 >OpenXml SDK學習筆記(5):最後的除錯

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;
}

就這麼簡單,然後就可以正常使用啦!客戶收到檔案,非常滿意,這個功能變更就此完成。