所以我导入了办公室图书馆,我说using Microsoft.Office.Interop;

我正在尝试创建一种方法来检查Excel工作簿是否打开。由于此错误,Havent尚未取得任何进展。

当我声明Excel.Application exApp;时,它说找不到类型或命名空间名称'excel'。

它说我需要声明它说Microsoft.Office.Interop.Excel.Application exApp;

我真的不认为我在这里做错了什么...我的导入没有错误。

using Microsoft.Office.Interop;

namespace Month_End_Closing
{
    public partial class Step1Form : Form
    {
        public Step1Form()
        {
            InitializeComponent();
        }

        static bool IsOpened(string wbook)
        {
            bool isOpened = true;
            Excel.Application exApp;

            return isOpened;
        }
    }
}

最佳答案

using指令不能那样工作。您不能在using指令中提供名称空间名称的一部分,然后在其他位置提供其余名称空间。

根据C#5规范的9.4.2节:


  using-namespace-directive将名称空间中包含的类型导入到直接封闭的编译单元或名称空间主体中,从而可以无限制地使用每种类型的标识符。
  
  ...
  
  using-namespace-directive导入给定名称空间中包含的类型,但具体不导入嵌套名称空间。


例如,这是无效的:

using System;
...

Console.WriteLine(IO.File.Exists("foo"));


所以你可以这样写:

using Microsoft.Office.Interop.Excel;


然后:

Application exApp;


假设Application明确无误。 (听起来好像不是您的情况。)或者您可以使用别名:

using Excel = Microsoft.Office.Interop.Excel;


然后:

Excel.Application exApp;

07-26 00:04
查看更多