2011-03-24 38 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