How to get text from line number in MS Word

前端 未结 3 1297
迷失自我
迷失自我 2021-01-22 08:00

Is it possible to get text (line or sentence) from a given line number in MS Word using office automation? I mean its ok if I can get either the text in the given line number or

3条回答
  •  孤街浪徒
    2021-01-22 08:48

    Fortunately after some epic searching I got a solution.

        object file = Path.GetDirectoryName(Application.ExecutablePath) + @"\Answer.doc";
    
        Word.Application wordObject = new Word.ApplicationClass();
        wordObject.Visible = false;
    
        object nullobject = Missing.Value;
        Word.Document docs = wordObject.Documents.Open
            (ref file, ref nullobject, ref nullobject, ref nullobject,
            ref nullobject, ref nullobject, ref nullobject, ref nullobject,
            ref nullobject, ref nullobject, ref nullobject, ref nullobject,
            ref nullobject, ref nullobject, ref nullobject, ref nullobject);
    
        String strLine;
        bool bolEOF = false;
    
        docs.Characters[1].Select();
    
        int index = 0;
        do
        {
            object unit = Word.WdUnits.wdLine;
            object count = 1;
            wordObject.Selection.MoveEnd(ref unit, ref count);
    
            strLine = wordObject.Selection.Text;
            richTextBox1.Text += ++index + " - " + strLine + "\r\n"; //for our understanding
    
            object direction = Word.WdCollapseDirection.wdCollapseEnd;
            wordObject.Selection.Collapse(ref direction);
    
            if (wordObject.Selection.Bookmarks.Exists(@"\EndOfDoc"))
                bolEOF = true;
        } while (!bolEOF);
    
        docs.Close(ref nullobject, ref nullobject, ref nullobject);
        wordObject.Quit(ref nullobject, ref nullobject, ref nullobject);
        docs = null;
        wordObject = null;
    

    Here's the genius behind the code. Follow the link for some more explanation on how it works.

提交回复
热议问题