在C#中使用Word Dll从Word文档中读取内容

时间:2015-06-16 05:34:38

标签: c# asp.net

HIII

我希望从Microsoft Word文件中获取内容 Microsoft.Office.Interop dll使用。

我也使用这段代码,但它只读取.xml文件和.txt文件中的文本而不是.doc文件

using System.IO;
using(StreamReader streamReader = new StreamReader(filePath)) { string text = streamReader.ReadToEnd();  }

2 个答案:

答案 0 :(得分:1)

办公文档比简单的xml / txt文件更复杂,因为它们包含更多与文本相关的信息(字体,颜色,位置,表格,图像等)。

从Office 2007开始,microsoft使用“Office Open XML”格式来保存office文件。要解析docx文件,请将其扩展名重命名为zip(例如untitled1.docx.zip)并提取其内容(使用任何zip应用程序/库)。

您将获得一些文件和文件夹,导航到'word'文件夹,只需读取名为'document.xml'的文件。

此文件包含文档的所有文本信息(它是xml格式的,因此请务必正确解析)。

如果要提取2007之前文件的文本信息(例如'doc'文件),则必须使用Microsoft Office Compatibility Pack,将文件迁移到新格式(可以通过编程方式使用,读取关于它)

答案 1 :(得分:0)

使用添加参考添加命名空间 - >浏览 - > Code7248.word_reader.dll。

从给定网址下载dll:

sourceforge.net/p/word-reader/wiki/Home/

(一个简单的.NET库,与C ++的.NET 2.0,3.0,3.5和4.0兼容。它目前只能从.doc或.docx文件中提取原始文本。)

示例代码位于C#中的简单控制台:

using System;
using System.Collections.Generic;
using System.Text;
//add extra namespaces
using Code7248.word_reader;


namespace testWordRead
{
    class Program
    {
        private void readFileContent(string path)
        {
            TextExtractor extractor = new TextExtractor(path);
            string text = extractor.ExtractText();
            Console.WriteLine(text);
        }
        static void Main(string[] args)
        {
            Program cs = new Program();
            string path = "D:\Test\testdoc1.docx";
            cs.readFileContent(path);
            Console.ReadLine();
        }
    }
}

它与doc& docx formet文件。