2012-08-03 35 views
0

我一直在使用下面的代碼來讀取整個word文檔。在VC#2010的docx文件中逐頁閱讀

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

我得到了頁面中的所有變量。請建議我如何在字符串數組中逐頁閱讀?

回答

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