【问题标题】:How to load text of MS Word document in C# (.NET)?如何在 C# (.NET) 中加载 MS Word 文档的文本?
【发布时间】:2008-10-18 21:55:30
【问题描述】:

如何在不这样做的情况下将 MS Word 文档(.doc 和 .docx)加载到内存(变量)?:

wordApp.Documents.Open

我不想打开 MS Word,我只想要里面的文字。

你给了我 DOCX 的答案,但是 DOC 呢?我想要免费和高性能的解决方案——不要打开 12.000 个 Word 实例来处理所有这些实例。 :( Aspose 是商业产品,900 美元对我来说太贵了。

【问题讨论】:

    标签: c# .net ms-word docx doc


    【解决方案1】:

    您可以使用 Office 兼容包中的 wordconv.exe 将 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

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

    【讨论】:

      【解决方案2】:

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

      Using DocxToText to Extract Text from DOCX Files

      在文章中,作者讨论了只删除单词本身。

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

      【讨论】:

      • 有没有免费的doc到docx的解决方案?
      【解决方案3】:

      如果您正在处理 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

      【讨论】:

        【解决方案4】:

        我最近对这个话题做了一些研究。事实证明,要能够在不打开 word 本身的情况下以编程方式操作 word 文件,您需要一些非常昂贵的工具。

        code project on manipulating Word 上有一篇文章,您可能会发现它很有用。作者构建了一个 C# COM 包装器来处理对 Word 的调用。看起来它实际上弹出了应用程序这个词。

        This post over at the neowin forums 看起来也很有希望。它包括很多用于文本提取目的的 PInvoked 调用。

        如果你能找到一种方法来隐藏窗口,那是可以接受的。

        【讨论】:

          【解决方案5】:

          Aspose 有一个组件可以读取、修改和写入 Word 文档。 这是产品链接:Aspose.Words for .NET and Java

          Aspose.Words 支持 .NET 和 Java 用于读取、修改和写入的应用程序 Word® 文档,无需使用 微软 Word®。 Aspose.Words 支持 广泛的功能,包括 文档创建、内容和 格式处理,强大的邮件 融合能力,全面支持 DOC、OOXML、RTF、WordprocessingML、 HTML、OpenDocument 和 PDF 格式。 Aspose.Words 确实是最 价格实惠、速度最快且功能丰富 市场上的单词组件。

          【讨论】:

          • 免费图书馆,-> Aspose: US$899
          【解决方案6】:

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

          这是代码(Node.JS)

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

          这只是三行代码,不依赖任何单词实例(都是纯JS)

          【讨论】:

            【解决方案7】:

            我并不是要成为对手,但为什么呢?

            我使用 Word2X 或 AbiWord 从 Linux 服务器上的 Word 文档中提取数据,根据文档的数量和种类,提取时总会出现错误。项目符号、分页符、文档部分和其他“特殊”功能越多,情况就越糟糕。

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

            【讨论】:

            • 如果我想每天处理 12.000 个 word 文档.. 猜猜我为什么不想打开 12000 个 Word 实例..
            猜你喜欢
            • 2011-01-15
            • 2010-10-12
            • 2012-05-08
            • 2011-05-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-01-05
            相关资源
            最近更新 更多