• <menu id="w2i4a"></menu>
  • logo Spire.Doc系列教程

    文檔首頁>>Spire.Doc系列教程>>Spire.Doc系列教程(13):根據(jù)分節(jié)符和分頁符拆分 Word 文檔

    Spire.Doc系列教程(13):根據(jù)分節(jié)符和分頁符拆分 Word 文檔


    在Word文檔中,我們可以通過最簡單的方法來拆分Word文檔,那就是打開一個(gè)是需要拆分的文檔的副本,刪除我們不需要的內(nèi)容然后將剩余內(nèi)容保存為新文檔到本地。雖然操作簡單,但是一節(jié)一節(jié)的刪除是個(gè)相當(dāng)繁瑣且枯燥的過程。利用Spire.Doc,我們可以程序化的根據(jù)分節(jié)符和分頁符來拆分Word文檔,這避免了手動(dòng)冗雜的操作。本文將對此做詳細(xì)介紹。

    根據(jù)分節(jié)符拆分文檔

    //實(shí)例化Document對象
    Document document = new Document();
    //載入待拆分的Word文檔
    document.LoadFromFile(@"測試文檔.docx");
    Document newWord;
    for (int i = 0; i < document.Sections.Count; i++)
    {
        //每有一個(gè)section就創(chuàng)建一個(gè)新的文檔
        newWord = new Document();
        //復(fù)制section內(nèi)容到新文檔
        newWord.Sections.Add(document.Sections[i].Clone());
        //保存文檔
        newWord.SaveToFile(String.Format(@"拆分結(jié)果\分節(jié)符拆分的結(jié)果文檔_{0}.docx", i));
     }

    原文檔如圖,其中有兩個(gè)分節(jié)符:

    運(yùn)行程序得到如下結(jié)果:


    根據(jù)分頁符拆分文檔

    //實(shí)例化Document對象
    Document original = new Document();
    //載入待拆分的Word文檔
    original.LoadFromFile(@"C:\Users\Administrator\Desktop\template.docx");
    
    //實(shí)例化一個(gè)新的文檔并添加新章節(jié)
    Document newWord = new Document();
    Section section = newWord.AddSection();
    
    int index = 0;
    //根據(jù)章節(jié),段落的層次由大到小依次遍歷文檔元素,復(fù)制內(nèi)容到新的文檔
    foreach (Section sec in original.Sections)
    {
        foreach (DocumentObject obj in sec.Body.ChildObjects)
        {
            if (obj is Paragraph)
            {
                Paragraph para = obj as Paragraph;
                section.Body.ChildObjects.Add(para.Clone());
    
                foreach (DocumentObject parobj in para.ChildObjects)
                {
                    //找到段落中的分頁符,保存到新文檔
                    if (parobj is Break && (parobj as Break).BreakType == BreakType.PageBreak)
                    {
                        int i = para.ChildObjects.IndexOf(parobj);
                        section.Body.LastParagraph.ChildObjects.RemoveAt(i);
                        newWord.SaveToFile(String.Format(@"C:\Users\Administrator\Desktop\拆分結(jié)果\分頁符拆分的結(jié)果文檔_{0}.docx", index), FileFormat.Docx);
                        index++;
                        //一個(gè)文檔完成之后新建一個(gè)文檔
                        newWord = new Document();
                        section = newWord.AddSection();
                        //復(fù)制上一個(gè)分頁符所在的段落的所有內(nèi)容到新文檔
                        section.Body.ChildObjects.Add(para.Clone());
                        //如果新文檔第一段(也就是剛剛復(fù)制的那一段)沒有子元素,
                        //則把文檔的第一個(gè)子元素刪除
                        if (section.Paragraphs[0].ChildObjects.Count == 0)
                        {
                            section.Body.ChildObjects.RemoveAt(0);
                        }
                        else
                        {
                            //如果有內(nèi)容則刪除分頁符之前的所有內(nèi)容
                            while (i >= 0)
                            {
                                section.Paragraphs[0].ChildObjects.RemoveAt(i);
                                i--;
                            }
                        }
                    }
                }
            }
            if (obj is Table)
            {
                section.Body.ChildObjects.Add(obj.Clone());
            }
        }
    }
    newWord.SaveToFile(String.Format(@"C:\Users\Administrator\Desktop\拆分結(jié)果\分頁符拆分的結(jié)果文檔_{0}.docx", index), FileFormat.Docx);

    原文檔如圖,其中有一個(gè)分頁符:

    運(yùn)行程序得到如下結(jié)果:

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();