2011-06-09 65 views
2

我試圖轉換大量(100,000)字DOC文件,這些都很舊。從1995年到2000年版本的Word,我認爲。從我在這裏看到的堆棧溢出和MS文檔中,我一直圍繞着循環。如何從使用C#的Word文件中提取文本?

我想要做的只是簡單地讀取文件,將文本粘貼到字符串中,解析字符串,取出結構的東西(該文件實際上是一個結構化的報告,看起來像Patient:Jon Doe)。那時,我知道我在做什麼。我可以解析字符串數據,將其粘貼到有用的變量中,然後將這些數據粘貼到數據庫中。但我不知道如何將文本實際放入字符串中。任何幫助?

PPS我發現this reference據說將DOC文件放入文本文件。這是一個開始,但我寧願避免做一堆文件操作。

+0

你看過ifilters嗎?我在一段時間後做了一些研究,看起來他們可能很合適。這裏是一個鏈接 - http://www.codeproject.com/KB/cs/IFilter.aspx – dana 2011-06-09 02:28:30

+0

我發現這似乎有幫助:http://stackoverflow.com/questions/1887133/easiest-way-to-process- ms-word-file-text- – Rob 2011-06-09 21:44:30

回答

2

如果您嘗試使用Word對象模型,你必須始終實例Word的一個特定版本的客戶端(因爲一臺服務器上運行Word,不推薦)。不幸的是,您將依賴於Word對舊文件的限制,例如在Word 2010中,只能在沙箱模式下打開Office 95中的文件(即無法以編程方式訪問文件內容)。此外,您必須處理未知的模板內容(例如,附有宏的文檔)。

就你而言,我寧願尋找一個允許訪問內容的3p組件。 我從文檔管理系統(如OpenText eDocs和Autonomy iManage)瞭解到,他們使用其他工具對所有類型的全文索引文檔進行處理,並可以在查看器應用程序中呈現內容。所以如果你朝這個方向看,可能會發現一些有用的東西。

0

就代碼而言,word文件只是一個普通的文件。

試試這個:

using System.IO; 

StreamReader streamReader = new StreamReader(filePath); 
string text = streamReader.ReadToEnd(); 
streamReader.Close(); 
+3

這聽起來像他正在從文檔中提取文本,而不僅僅是讀取文件。 – dana 2011-06-09 02:32:21

相關問題