从DOC/DOCX文件C#中提取单词



我想从Word文件(DOC/DOCX(中提取所有单词并将其放入列表中。似乎Microsoft.office.interop可以工作,如果我想提取段落并将其添加到列表中。

List<string> data = new List<string>();
Microsoft.Office.Interop.Word.Application app = new 
  Microsoft.Office.Interop.Word.Application();
Document doc = app.Documents.Open(dlg.FileName);
foreach (Paragraph objParagraph in doc.Paragraphs)
  data.Add(objParagraph.Range.Text.Trim());
((_Document)doc).Close();
((_Application)app).Quit();`

我还找到了通过单词提取的方法,但是由于生成异常的循环,它与大文档无效。

`Dictionary<int, string> motRap = new Dictionary<int, string>();
        Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application();
        Document document = application.Documents.Open("C:/Users/Titri/Desktop/test/test/bin/Debug/po.txt");
    // Loop through all words in the document.
    int count = document.Words.Count;
    for (int i = 1; i <= count; i++)
    {
        string text = document.Words[i].Text;
        motRap.Add(i, text);
    }
    // Close word.
    application.Quit();`

所以我的问题是,是否有一种方法可以从大词文件中提取单词。我认为Microsoft.office.interop不是从大文件中提取的好工具。抱歉,我的英语不好。

段落内的对象称为 Run,尽管我不知道这是否在Interop中可用。为了提高您的经验,我建议您切换到使用OpenXmlSdk,以防您必须处理大量文档。

如果要坚持互动,为什么不将每个段落分为数组(分界符显然是空间(,然后添加所有单词?

最新更新