逐行阅读word文档

我正在尝试使用C#阅读word文档。 我能够获得所有文本但我希望能够逐行读取并存储在列表中并绑定到gridview 。 目前,我的代码只返回一个包含所有文本的项目列表(不是根据需要逐行)。 我正在使用Microsoft.Office.Interop.Word库来读取该文件。 以下是我的代码:

Application word = new Application(); Document doc = new Document(); object fileName = path; // Define an object to pass to the API for missing parameters object missing = System.Type.Missing; doc = word.Documents.Open(ref fileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); String read = string.Empty; List data = new List(); foreach (Range tmpRange in doc.StoryRanges) { //read += tmpRange.Text + "
"; data.Add(tmpRange.Text); } ((_Document)doc).Close(); ((_Application)word).Quit(); GridView1.DataSource = data; GridView1.DataBind();

好。 我在这里找到了解决方案。

最终代码如下:

  Application word = new Application(); Document doc = new Document(); object fileName = path; // Define an object to pass to the API for missing parameters object missing = System.Type.Missing; doc = word.Documents.Open(ref fileName, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); String read = string.Empty; List data = new List(); for (int i = 0; i < doc.Paragraphs.Count; i++) { string temp = doc.Paragraphs[i + 1].Range.Text.Trim(); if (temp != string.Empty) data.Add(temp); } ((_Document)doc).Close(); ((_Application)word).Quit(); GridView1.DataSource = data; GridView1.DataBind(); 

上面的代码是正确的,但它太慢了。 我改进了代码,它比上面的代码快得多。

 List data = new List(); Application app = new Application(); Document doc = app.Documents.Open(ref readFromPath); foreach (Paragraph objParagraph in doc.Paragraphs) data.Add(objParagraph.Range.Text.Trim()); ((_Document)doc).Close(); ((_Application)app).Quit(); 

这个怎么样哟。 从文档中获取所有单词并在返回时拆分它们或者更适合您的任何内容。 然后变成列表

  List lines = doc.Content.Text.Split('\n').ToList();