近期看了一篇文章代码如下,由于我用的是VS2011的版本所以我添加引用的时候是
com--Microsoft Excel 12.0 object Library    .// Microsoft Word 12.0 object Library   
当把下面代码copy到VS中 using Excel会报错误,程序联想不到 Using Excel;求解答该如何引用啊            //网站 ---添加引用--com--Microsoft Excel 9.0 object Library    .// Microsoft Word 9.0 object Library               using System.Reflection;
using Excel;
using System.Diagnostics;
using Microsoft.Office;public partial class tel : System.Web.UI.Page
{
      protected void Page_Load(object sender, EventArgs e)
      {  
          //word
          Response.Write(Get_Html("New.doc"));
         //excel
          ExcelConvertToHtml("E:\\12345.xls","E:\\aaa.html");
      }      protected void ExcelConvertToHtml(string xlsPath, string htmlPath)
      {
          try
          {
              Excel.Application app = new Excel.Application();
              app.Visible = false;
              Object o = Missing.Value;              /// _Workbook     xls=app.Workbooks.Open(xlsPath,ref     o,ref     o,ref     o,ref     o,ref     o,ref     o,ref     o,ref     o,ref     o,ref     o,ref     o,ref     o,ref     o,ref     o);                  _Workbook xls = app.Workbooks.Open(xlsPath, o, o, o, o, o, o, o, o, o, o, o, o);
              object fileName = htmlPath;
              object format = Excel.XlFileFormat.xlHtml;//Html                 // xls.SaveAs(ref     fileName,ref     format,ref     o,ref     o,ref     o,ref     o,ref     o,ref     o,ref     o,ref     o,ref     o,ref     o);   
              xls.SaveAs(fileName, format, o, o, o, o, XlSaveAsAccessMode.xlExclusive, o, o, o, o);
              //xls.SaveAs(
              object t = true;
              app.Quit();              Process[] myProcesses = Process.GetProcessesByName("EXCEL");
              foreach (Process myProcess in myProcesses)
              {
                  myProcess.Kill();
              }
          }
          catch (Exception ex)
          {
              System.Console.Write(ex.Message);
              // MessageBox.Show(ex.Message);
          }
      }
      private string Get_Html(string FileName)
      {          Word.ApplicationClass word = new Word.ApplicationClass();
          Type wordType = word.GetType();
          Word.Documents docs = word.Documents;          //     打开文件   
          Type docsType = docs.GetType();
          // RAID.doc
          // string newFileNamePath = this.Server.MapPath(mydata.Config.SysUploadPath + "/" + FileName);
          string newFileNamePath = this.Server.MapPath("download/" + FileName);
          Word.Document doc = (Word.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] { newFileNamePath, true,true });          //     转换格式,另存为   
          Type docType = doc.GetType();
          object saveFileName = newFileNamePath.Replace(".doc", ".htm");
          //下面是Microsoft     Word     9     Object     Library的写法,如果是10,可能写成:   
          /*   
          docType.InvokeMember("SaveAs",     System.Reflection.BindingFlags.InvokeMethod,   
            null,     doc,     new     object[]{saveFileName,     Word.WdSaveFormat.wdFormatFilteredHTML});   
          */
          ///其它格式:   
          ///wdFormatHTML   
          ///wdFormatDocument   
          ///wdFormatDOSText   
          ///wdFormatDOSTextLineBreaks   
          ///wdFormatEncodedText   
          ///wdFormatRTF   
          ///wdFormatTemplate   
          ///wdFormatText   
          ///wdFormatTextLineBreaks   
          ///wdFormatUnicodeText   
          docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { saveFileName, Word.WdSaveFormat.wdFormatHTML });          //     退出     Word   
          wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);          string newFileName = FileName.Replace(".doc", ".htm");
          return (newFileName);
      }}

解决方案 »

  1.   

    你调整过服务器上 DCOM 的设置没有?如果没调整过,默认是不允许和 Office 交互的。
    这是我以前做 Word 操作时写的文档,繁体的,将就着看下吧一、因為列印實驗室申請書使用 Word 組件,默認情形下匿名用戶無法調用 Word 組件,所以必須調整默認權限設置,如下:
      1、點擊“開始”-> “執行”,輸入命令“dcomcnfg.exe”
      2、在打開的程式窗口中,選擇左側的“主控台根目錄”->“元件服務”->“電腦”->“我的電腦”->“DCOM 設定”,若彈出提示信息,點“否”即可。
      3、在窗口右側找到“Microsoft Office Word 97 - 2003 文件”,右擊選擇“內容”->“識別碼”,點選“互動式使用者 - 目前登入的使用者”選項。
      4、然後點擊“安全設定”附簽,“啟動和啟用權限”設為“自訂”,並點擊“編輯”按鈕,在彈出的對話框中,點擊“新增”->“進階”->“立即尋找”,找到用戶“Network Service”,添加進來,並設置其權限“本機啟動”及“本機啟用”為允許。
      5、同4,設置“存取權限”為“自訂”,增加用戶“Network Service”,並設置其權限“本機存取”為允許。
      

  2.   

    Excel 对应的是 Microsoft Excel Application,不是 Microsoft Office Word 97 - 2003 文件
      

  3.   

    问一下 win7系统怎么找呢? 我跟你一步步来的到 窗口右側找到“Microsoft Office Word 97 - 2003 文件”这步 找不到了。
      

  4.   

    那是你机器上并没有安装Office 2003,估计是2007或更高版本,所以没有。
      

  5.   

    问题解决了 因为我装的是64位的所以找不到 comexp.msc -32 这样就能找到,然后引用
    Microsoft.Office.Interop.Excel 时 应把他的属性Embed Interop Type设置为False:就OK了
      

  6.   

    Embed Interop Type设置为False  这个属性是在那块设置的 我没找到