使用c#读取Word文档

时间:2013-02-25 10:40:06

标签: c# ms-word

我需要从特定点开始阅读word文档。 该关键字来自下拉组合框。 关键字类似于[blah blah,blah,001]

所以,我需要只读取该关键字中的内容到下一个标题......

我用它来逐行读取标题号 但标题num notworking

string headNum = objparagraph.Range.ListFormat.ListString;
string sLine = objparagraph.Range.Text;

2 个答案:

答案 0 :(得分:2)

       Word.Application word = new Word.Application();
       Word.Document doc = new Word.Document();
       object fileName = @"C:\wordFile.docx";
        // 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 ReadValue = string.Empty;
            // Activate the document
        doc.Activate();

         foreach (Word.Range tmpRange in doc.StoryRanges)
         {
            ReadValue += tmpRange.Text;
         }

答案 1 :(得分:0)

如果我理解正确,则需要阅读从关键字到下一个标题的Word文档。换句话说,类似于以下文档中的红色文本:

enter image description here

在这种情况下,您可以使用GemBox.Document完成此操作:

string keyword = " [blah blah, blah, 001]";
DocumentModel document = DocumentModel.Load("input.docx");

ContentPosition start = document.Content
    .Find(keyword)
    .First()
    .End;

ContentPosition end = new ContentRange(start, document.Content.End)
    .GetChildElements(ElementType.Paragraph)
    .Cast<Paragraph>()
    .First(p => p.ParagraphFormat.Style != null && p.ParagraphFormat.Style.Name.Contains("heading"))
    .Content
    .Start;

string text = new ContentRange(start, end).ToString();

text变量的值为:

  

示例我们要检索的文本内容。
  另一个示例paragrap。

此外,这里还有其他ReadingGet Content示例,它们包含一些有用的信息。