7

我正在开发一个项目(asp.net、c#、vb 2010、.net 4),我需要阅读我之前上传的 DOC 和 DOCX 文件(我已经完成了上传部分)。棘手的部分是我没有在服务器上安装 MS Office 并且我无法使用它。

是否有任何公共库可以包含在我的项目中而无需安装任何东西?两个文档都非常简单:

NUMBER TAB STRING  
NUMBER TAB STRING  
NUMBER TAB STRING  
...  

我需要为每一行(段落)提取数字和字符串。

有人可以帮忙吗?我应该再次重申,我受到限制,无法在服务器上安装任何东西。

4

4 回答 4

5

我们现在可以使用开源的NPOI(Apache POI 的 .NET 端口)库,它还支持 docx、xls 和 xlsx。DocX 也是另一个用于创建 word 文档的开源库。

对于 DOCX,我建议使用 Open XML API,虽然微软开发了Open XML来通过与此 API 通信的 XML 文件来创建办公文件,但最新的 2.5 版本是在 5 年前的 2013 年发布的。

于 2013-01-22T09:35:25.217 回答
2

你可以使用Code7248.word_reader.dll

下面是如何使用 Code7248.word_reader.dll 的示例代码

在您的项目中添加对此 DLL 的引用并复制以下代码。

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();
        }
    }
}
于 2017-01-05T11:49:27.677 回答
1

更新:NPOI 现在支持 docx。请尝试最新版本(NPOI 2.0 beta)

于 2013-11-29T22:22:30.507 回答
-1

你可以这样做:

using System.IO;
using System.Text;
using Spire.Doc;
    
namespace ReadTextLineByLine{
    class Program {
        static void Main(string[] args) {
            //Create a Document object
            Document doc = new Document();
            //Load a Word file
            doc.LoadFromFile(@"C:\Users\Administrator\Desktop\data.docx");
            //Convert the text in Word line by line into a txt file
            doc.SaveToTxt("result.text", Encoding.UTF8);
            //Read all lines of txt file
            string[] lines = File.ReadAllLines("result.text", System.Text.Encoding.Default);
        }
    }
}
于 2022-02-07T06:36:09.083 回答