日期:2014-05-18  浏览次数:21282 次

方法“Microsoft.office.Interop.Word._Document.Close(ref object,ref object,ref object)”
方法Microsoft.office.Interop.Word._Document.Close(ref object,ref object,ref object)”和非方法Microsoft.office.Interop.Word.DocumentEvents2_Event.Close"之间存在二义性。将使用方法组。
程序如下:
Word文件加载到richtexbox,下面的程序是网上下载的,但是说找不到命名空间Word,我添加了using Word;调试的时候说找不到命名空间,请问是怎么回事? 
Word.Application newApp=new Word.Application(); 
// 指定原文件和目标文件 
  object Source = openFileDialog1.FileName; 
  object Target = Application.StartupPath + "\\temp.rtf"; 

  // 缺省参数  
  object Unknown = Type.Missing; 

  //为了保险,只读方式打开 
  object readOnly = true; 

  // 打开doc文件 
  Word.Document doc = newApp.Documents.open(ref Source, ref Unknown, 
  ref readOnly, ref Unknown, ref Unknown, 
  ref Unknown, ref Unknown, ref Unknown, 
  ref Unknown, ref Unknown, ref Unknown, 
  ref Unknown, ref Unknown, ref Unknown, 
  ref Unknown, ref Unknown); 

  // 指定另存为格式(rtf) 
  object format = Word.WdSaveFormat.wdFormatRTF; 

  // 转换格式 
  doc.SaveAs(ref Target, ref format, 
  ref Unknown, ref Unknown, ref Unknown, 
  ref Unknown, ref Unknown, ref Unknown, 
  ref Unknown, ref Unknown, ref Unknown, 
  ref Unknown, ref Unknown, ref Unknown, 
  ref Unknown, ref Unknown); 

  // 关闭文档和Word程序 
  doc.Close(ref Unknown, ref Unknown, ref Unknown); 
  newApp.Quit(ref Unknown, ref Unknown, ref Unknown); 

  //加载到RichTextBox 
  this.richTextBox1.LoadFile(Application.StartupPath + "\\temp.rtf"); 


------解决方案--------------------
Word.ApplicationClass WordApp = new Word.ApplicationClass();

// give any file name of your choice. 
object fileName = "D:\\aa.doc";
object readOnly = false;
object isVisible = false;

// the way to handle parameters you don't care about in .NET 
object missing = System.Reflection.Missing.Value;
WordApp.Visible = false;
// Make word visible, so you can see what's happening 
//WordApp.Visible = true; 
// Open the document that was chosen by the dialog 
Word.Document aDoc = WordApp.Documents.Open(ref fileName,
ref missing, ref readOnly, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing,
ref missing, ref isVisible, ref missing, ref missing, ref missing, ref missing);

Word.WdStatistic stat = Word.WdStatistic.wdStatisticPages;
int num = aDoc.ComputeStatistics(stat, ref missing);
System.Console.WriteLine("The number of pages in doc is {0}",
num);

foreach (Word.Field f in aDoc.Fields)
{
string