.net npoi讀word內容+目錄

  最近在做讀npoi文檔存入搜索引擎,實現快速查詢word文檔中內容並展示,效果希望帶有目錄導航。

  網上有很多例子都是讀寫操作,很膚淺沒有具體讀到想要的東西所以自己就寫了個demo,也有微軟提供的office,需要裝一致的版本,而且必須裝,直接忽略。

  嘗試了兩種方案:1、使用npoi

          2、使用Spire.Doc

  先介紹一下Spire.Doc,這個是收費版本的,網上也有很多破解版,也實現了基本要的要過,不過取目錄有點問題,做各種處理,做的太繁瑣就沒繼續,先上一個效果圖:

                  

 

 

   看起來效果還不錯,不過需要付費的,不付費有水印,被我用技術手段給去掉了,大概提示「Evaluation Warning: The document was created with Spire.Doc for .NET.」。目錄沒辦法讀出來。速度還挺快不能打滿分。核心代碼如下:

using Spire.Doc; 引用

Spire.Doc.Document document = new Spire.Doc.Document();
document.LoadFromFile(path);
document.SaveToFile(“D:\\1法規\\02中華人民共和國會計法2017修訂版.txt”, FileFormat.Html);//FileFormat支持轉換很多想了解的可以看看(word、html、txt、xml、pdf、jpg等格式很多)
string upStr = File.ReadAllText(“D:\\1法規\\02中華人民共和國會計法2017修訂版.txt”, Encoding.UTF8);

  xml應該可以讀到目錄,最後沒嘗試,接下來用npoi讀word內容加目錄。

       這個是純文字,沒有任何樣式讀取

        

核心代碼

XWPFDocument document = null;

using (FileStream file = new FileStream(fileName, FileMode.Open, FileAccess.Read))
{
document = new XWPFDocument(file);
}

StringBuilder sbFileText = new StringBuilder();

foreach (XWPFParagraph paragraph in document.Paragraphs)
{
sbFileText.AppendLine(paragraph.ParagraphText);

}

 

  npoi轉成html示例圖

  看起來還不錯,不花錢的東西有這樣很知足了,功能還不是很全呀,目錄還沒出現,嗯繼續搞

          

 

 

 看npoi給的示例根本沒有呀,咋辦哦難搞

最後一個屬性一個屬性的看,找了一下有沒有自己想要的,發現大陸

npoi提供  protected List<XWPFSDT> contentControls;

這個主要記錄目錄,非常完美了nice

 

這個調用是被受保護的,沒辦法直接調用做個反射讀出來就可以啦

目錄+純內容+body H實現了,接下來怎麼操作

直接存庫,存搜索引擎————前台的問題來了,目錄怎麼匹配具體到哪一行呀,我給的方案是點目錄跳轉直接全字搜索到匹配的跳過去高亮就行。目前還沒有更好的方案,接下來可以參考word裏面目錄鏈接進行反編,word裏面href大概是#_Toc54704623,就是對應到具體的行,目前沒有破譯出來,搞出來慢慢跟你們分享。

 

不知道怎麼實現的可以留言發demo參考;

 

 

 

 

 

 

 

  

 

Tags: