Excel工作簿input奇怪的错误

对于当前的代码:

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

我收到错误:

System.Runtime.InteropServices.COMException未处理Message =检索具有CLSID {00020819-0000-0000-C000-000000000046}的组件的COM类工厂失败,原因如下:80040154类未注册(exception来自HRESULT:0x80040154(REGDB_E_CLASSNOTREG ))。 Source = mscorlib ErrorCode = -2147221164

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

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

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

 Workbook wb = excel.Workbooks.Open(currentPath); 

用类似的方法,如果你想创build一个新的空的工作簿,你应该写:

 Workbook wb = excel.Workbooks.Add(System.Reflection.Missing.Value); 

我不知道你的错误,但我做了类似这样的事情:

  _app = new Excel.Application(); Excel.Workbook wb = _app.Workbooks.Open(currentPath); 

右键单击您的解决scheme并将平台更改为x86重build您的解决scheme…祝您好运!