Excel工作簿输入上的奇怪错误

jth*_*h41 4 c# excel visual-studio-2010 excel-interop

对于当前代码:

 String currentPath = Directory.GetCurrentDirectory();

        OpenFileDialog op = new OpenFileDialog();
        op.InitialDirectory = currentPath;
        if (op.ShowDialog() == DialogResult.OK)
            currentPath = op.FileName;
        else
        {
            toolStripStatusLabel1.Text = "Failed to Load Workbook";
            toolStripStatusLabel1.Visible = true;
        }

        Workbook wb = new Workbook(excel.Workbooks.Open(currentPath));
Run Code Online (Sandbox Code Playgroud)

我收到错误:

System.Runtime.InteropServices.COMException未处理Message =检索具有CLSID {00020819-0000-0000-C000-000000000046}的组件的COM类工厂因以下错误而失败:80040154类未注册(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG) )).Source = mscorlib ErrorCode = -2147221164

我想要的只是一个预定义的工作簿来添加工作表

Fra*_*lli 12

我想在你的代码中,Workbook的全名是Microsoft.Office.Interop.Excel.Workbook,而excel是Microsoft.Office.Interop.Excel.Application的一个实例.

如果是这种情况,您的代码将无法工作,因为Workbook是一个接口,而接口没有构造函数.您必须要求excel应用程序为您创建工作簿,在您的情况下,您必须简单地写:

Workbook wb = excel.Workbooks.Open(currentPath); 
Run Code Online (Sandbox Code Playgroud)

以类似的方式,如果要创建一个新的空工作簿,您应该写:

Workbook wb = excel.Workbooks.Add(System.Reflection.Missing.Value);
Run Code Online (Sandbox Code Playgroud)