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);

ページ変数ですべてを取得しています。文字列の配列でページごとに読み取る方法を教えてください。

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 に答える