如何在C#(.NET)中加载MS Word文档的文本?

如何在不执行此操作的情况下将MS Word文档(.doc和.docx)加载到内存(变量)?

wordApp.Documents.Open

我不想打开MS Word,我只想在里面找到那个文字。

你给了我DOCX的答案,但DOC怎么样? 我想要免费和高性能的解决方案 – 不要打开12.000个Word实例来处理所有这些。 🙁 Aspose是商业产品,900美元是我做的太多的方式。

您可以使用wordconv.exe,它是Office兼容包的一部分,可以从doc转换为docx。

http://www.microsoft.com/downloads/details.aspx?familyid=941b3470-3ae9-4aee-8f43-c6bb74cd1466&displaylang=en

只需像这样调用命令:“C:\ Program Files \ Microsoft Office \ Office12 \ wordconv.exe”-oice -nme InputFile OutputFile

我不确定你是否需要安装单词才能运行但它确实有效。 我在本地使用它作为Windows shell命令,以便随时将旧的office文件转换为2007格式。

对于docx格式的Word文档,我在CodeProject上找到了这篇有趣的文章

使用DocxToText从DOCX文件中提取文本

在文章中,作者讨论了剥离单词本身。

对于您的doc(非docx)Word文档而不是使用Office API和(在后台)生成Word实例,您可以尝试向市场上的许多不同Doc2Docx转换器中的一个转换,然后应用上述过程都。

如果你正在处理docx你可以做任何与Word .docx文件互操作实际上一个ZIP包含一个XML文件,你可以阅读XML请参考下面的链接

http://conceptdev.blogspot.com/2007/03/open-docx-using-c-to-extract-text-for.html

Office(2007)Open XML File Formats

我最近做了一些关于这个主题的研究。 事实certificate,为了能够以编程方式操作word文件而不打开字本身,你需要一些非常昂贵的工具。

在代码项目上有一篇关于操作Word的文章,你可能会发现它很有用。 作者构建了一个C#COM包装器,用于处理对Word的调用。 看起来它实际上是弹出打开单词应用程序。

这篇关于neowin论坛的post看起来也很有希望。 它包含了很多用于文本提取的PInvoked调用。

也许如果你能找到一种隐藏窗户的方法,那将是可以接受的。

Aspose有一个组件来读取,修改和编写Word文档。 这是产品链接: Aspose.Words for .NET和Java

Aspose.Words使.NET和Java应用程序能够在不使用MicrosoftWord®的情况下读取,修改和编写Word®文档。 Aspose.Words支持多种function,包括文档创建,内容和格式操作,强大的邮件合并function,DOC,OOXML,RTF,WordprocessingML,HTML,OpenDocument和PDF格式的全面支持。 Aspose.Words是市场上最实惠,最快,function最丰富的Word组件。

使用docxtemplater ,您可以轻松获取单词的全文(仅适用于docx)。

这是代码(Node.JS)

DocxTemplater=require('docxtemplater'); doc=new DocxTemplater().loadFromFile("input.docx"); result=doc.getFullText();

这只是三行代码,并不依赖于任何单词实例(所有普通的JS)

我不是故意成为反对者,为什么?

我使用Word2X或AbiWord从Linux服务器上的Word文档中提取数据,并且根据文档的数量和种类,提取总是会出错。 更糟糕的是更多的子弹,分页符,文档部分和其他“特殊”function。

我知道现在有一些选项可以自动化OpenOffice来处理文档,但我的建议是,如果可以的话,只需使用Word来处理Word文档。