0

我一直在使用下面的代码来阅读整个 word 文档。

Microsoft.Office.Interop.Word.ApplicationClass wordObject = new Microsoft.Office.Interop.Word.ApplicationClass();
                //Microsoft.Office.Interop.Word.ApplicationClass wordObject = new ApplicationClass();
                object file = file_path.Text; //this is the path
                object nullobject = System.Reflection.Missing.Value;
                Microsoft.Office.Interop.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
                                    );

                docs.ActiveWindow.Selection.WholeStory();                
                docs.ActiveWindow.Selection.Copy();
                IDataObject data = Clipboard.GetDataObject();
                //docx_contents.Text = data.GetData(DataFormats.Text).ToString();
                pages = data.GetData(DataFormats.Text).ToString();
                docs.Close(ref nullobject, ref nullobject, ref nullobject);

我得到了 pages 变量中的所有内容。请建议我如何在字符串数组中逐页阅读?

4

1 回答 1

0

这是我的代码的一部分

        DOCXStructure[] returnval = null;

        object file = filePath;
        object nullobj = System.Reflection.Missing.Value;
        object read_only = true;

        wordApp = new Word.ApplicationClass();

        FileInfo fileInfo = new FileInfo(filePath);

        string fileName = filePath.Substring(filePath.LastIndexOf('\\'));
        fileName = "~" + fileName;




        document = wordApp.Documents.Open(ref file, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj,
            ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj);



        Word.WdStatistic stat = Word.WdStatistic.wdStatisticPages;
        int PageNum = document.ComputeStatistics(stat, ref nullobj);

        returnval = new DOCXStructure[PageNum];

        for(int i=0; i<PageNum; i++){
            returnval[i] = new DOCXStructure();

            object what = Word.WdGoToItem.wdGoToPage;
            object which = nullobj;
            object count = i+1;
            object name = nullobj;
            object Page = "\\Page";

            wordApp.Selection.GoTo(ref what, ref which, ref count, ref name);

            Word.Range range = document.Bookmarks.get_Item(ref Page).Range;
            returnval[i].page = i+1;
            returnval[i].context.AddRange(range.Text.Split('\r', '\n', '\t'));
        }
        document.Close(ref nullobj, ref nullobj, ref nullobj);
于 2012-08-30T10:19:24.140 回答