如何将Microsoft Word文档中的文本读取到句子中的存储句子中



我在C#中执行Microsoft Word加载程序。我通过选择功能从Word文档中阅读文本。但是我不需要将所有文本读入内存中,但是我可以通过句子将文本句子阅读到内存中,因为我的文字文档很大。我知道,有范围函数,但是此函数可以划分单词。

此代码允许您从Word文档中读取每个段落。

我在此处提供的代码中进行了一些改编

也有一个如此的问题,它使用了从mantascode链接中的改编。

我真的不知道这是否会对您有所帮助,因为

Word.Documents.Open()

已经将整个文件加载到内存中(大型文件的速度非常慢)

一次阅读文档并将结果存储在字符串中似乎是最快的。

using System;
using System.Globalization;
public class Program {
    private static void Main(string[] args) {
        var wordDocParagraphReader = new WordDocParagraphReader(@"E:someDoc.docx");
        Console.WriteLine(wordDocParagraphReader.GetParagraph(0));
        Console.ReadLine();
        wordDocParagraphReader.Docs.Close();
        wordDocParagraphReader.Word.Quit();
    }
}
public class WordDocParagraphReader {
    public int ParagraphsCount { get; private set; }
    public Microsoft.Office.Interop.Word.Document Docs { get; private set; }
    public Microsoft.Office.Interop.Word.Application Word { get; private set; }

    public WordDocParagraphReader(object @path) {
        Word = new Microsoft.Office.Interop.Word.Application();
        object miss = System.Reflection.Missing.Value;
        object readOnly = true;
        Docs = Word.Documents.Open(ref path,
                                   ref miss,
                                   ref readOnly,
                                   ref miss,
                                   ref miss,
                                   ref miss,
                                   ref miss,
                                   ref miss,
                                   ref miss,
                                   ref miss,
                                   ref miss,
                                   ref miss,
                                   ref miss,
                                   ref miss,
                                   ref miss,
                                   ref miss);
        ParagraphsCount = Docs.Paragraphs.Count;
    }
    public string GetParagraph(int paragraphNumber) {
        if (paragraphNumber + 1 <= ParagraphsCount || paragraphNumber < 0) {
            return Docs.Paragraphs[paragraphNumber + 1].Range.Text.ToString(CultureInfo.InvariantCulture);
        }
        Console.WriteLine(String.Format("invalid paragraph requests {0} n( the total paragraphs in file is {1})",
                                        paragraphNumber,
                                        ParagraphsCount));
        return string.Empty;
    }
}
using word = Microsoft.Office.Interop.Word;    
word.Document worddoc = new word.Document();
for (int abc = 1; abc < worddoc.Sentences.Count; abc++)
{
MessageBox.Show("Sentence value "+worddoc.Sentences[abc].Text.ToString());
}

此代码将为您提供文档中存在的所有句子

此代码对我有用,只需使用Word Interop创建并打开Word文档。

最新更新