2011-03-24 39 views
3

我想從Word文檔中讀取標題和主題字段,但寧願不用開銷Word來執行此操作。如何從Word文檔中獲取主題和標題(無需打開它)?

如果在Windows資源管理器中顯示標題和主題列,然後導航到其中包含Word文檔的文件夾,則會顯示此信息。什麼機制被用來做(除了Shell擴展),因爲它的速度很快(但是我不知道你是否真的需要爲此安裝Word來工作),所以我猜測它沒有啓動Word並打開每個文件。

我發現了一個Dsofile.dll的鏈接,我認爲我可以使用這個鏈接,但是它是爲.doc和.docx文件工作的,它是唯一的方法嗎?

回答

3

那麼......有人可能會認爲「.doc」文件的傳遞時間,這裏有一種方法可以從「.docx」文件(或「.xlsx」文件就此而言)

using System; 
using System.IO; 
using System.IO.Packaging; // Assembly WindowsBase.dll 

namespace ConsoleApplication16 
{ 
    class Program 
    { 
    static void Main(string[] args) 
    { 
     String path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); 
     String file = Path.Combine(path, "Doc1.docx"); 

     Package docx = Package.Open(file, FileMode.Open, FileAccess.Read); 
     String subject = docx.PackageProperties.Subject; 
     String title = docx.PackageProperties.Title; 
     docx.Close(); 
    } 
    } 
} 

我希望這對某人有用。

1

您可以通過XML閱讀,也:How to extract information from Office files by using Office file formats and schemas

這裏是another example如何以編程方式讀取Word文檔。

某種方式,你必須在某個時候查看文件!

+0

感謝喬希,但其中的一個鏈接是一種啓動Word(通過OLE自動化)並獲取屬性的方法,另一個鏈接僅適用於Open XML文檔。打開文件很好,但使用像Word一樣大而沉重的東西看起來像是過度殺傷。我懷疑Shell擴展是這樣做的。 – 2011-03-24 15:17:47

+0

那麼因爲文檔類型是如此不同,你將不得不使用兩個解決方案或一個解決方案 - 自動化。也許你可以手動檢查文件以確定如何以另一種方式提取信息,但我認爲這可能並不容易。 – 2011-03-24 15:23:10