在 C# 中读取 Word 文档中的内容,而无需使用 Word dll

本文关键字:Word dll 读取 文档 | 更新日期: 2023-09-27 17:56:29

hiii

我想从没有 out Microsoft Word 文件中获取内容Microsoft.Office.Interop dll 使用。

我也使用此代码,但它仅从.xml文件中读取文本,并且.txt文件中不.doc文件

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

在 C# 中读取 Word 文档中的内容,而无需使用 Word dll

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

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

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

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

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

使用添加引用-->浏览-->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文件一起工作得很好。