如何在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。
只需像这样调用命令: “C:\ Program Files \ Microsoft Office \ Office12 \ wordconv.exe” -oice -nme InputFile OutputFile
我不确定你是否需要安装单词才能运行但它确实有效。我在本地使用它作为Windows shell命令,可以随时将旧的office文件转换为2007格式。
其他提示
对于docx格式的Word文档,我在CodeProject上找到了这篇有趣的文章
在文章中,作者讨论了剥离单词本身。
对于您的doc(非docx)Word文档而不是使用Office API和(在后台)生成Word实例,您可以尝试向市场上的许多不同Doc2Docx转换器中的一个转发,然后应用上面两个过程。
如果您正在处理docx,您可以通过与Word进行任何互操作来完成此操作 .docx文件实际上是一个包含XML文件的ZIP,可以读取XML 请参考以下链接
http:/ /conceptdev.blogspot.com/2007/03/open-docx-using-c-to-extract-text-for.html
我最近对这个话题进行了一些研究。事实证明,为了能够以编程方式操作word文件而不打开单词本身,你需要一些非常昂贵的工具。
关于操纵Word的代码项目上有一篇文章,你可能会觉得有用。作者构建了一个C#COM包装器,用于处理对Word的调用。看起来它实际上弹出了应用程序这个词。
此帖在neowin论坛看起来也很有希望。它包含了很多用于文本提取的PInvoked调用。
也许如果你能找到隐藏窗口的方法,那就可以了。
Aspose有一个组件来读取,修改和编写Word文档。 以下是产品链接: Aspose.Words for .NET和Java
Aspose.Words支持.NET和Java 应用程序的读取,修改和写入 字®没有利用的文件 Microsoft Word®。 Aspose.Words支持 各种功能,包括 文档创建,内容和 格式化操作,强大的邮件 合并能力,全面支持 DOC,OOXML,RTF,WordprocessingML, HTML,OpenDocument和PDF格式。 Aspose.Words确实是最多的 价格实惠,速度快,功能丰富 市场上的Word组件。
使用 docxtemplater ,您可以轻松获取单词的全文(仅适用于docx)。
这是代码(Node.JS)
<代码> DocxTemplater =要求( 'docxtemplater'); doc = new DocxTemplater()。loadFromFile(&quot; input.docx&quot;); 结果= doc.getFullText(); 代码>
这只是三行代码,并不依赖于任何单词实例(所有普通JS)
我不是故意成为反对者,而是为什么?
我使用Word2X或AbiWord从Linux服务器上的Word文档中提取数据,并且根据文档的数量和种类,提取总是会出错。更多的子弹,分页符,文档部分和其他“特殊”部分更糟糕。有特色。
我知道现在有一些选项可以自动化OpenOffice来处理文档,但我的建议是,如果可以的话,只需使用Word来处理Word文档。