对于当前代码:
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未处理 消息=由于以下错误,检索CLSID为{00020819-0000-0000-C000-000000000046}的组件的COM类工厂失败:80040154未注册类(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG))。 来源= mscorlib程序 错误码= -2147221164
我想要的只是一个预定义的工作簿,可以将工作表添加到
答案 0 :(得分:12)
我想在你的代码中,Workbook的全名是Microsoft.Office.Interop.Excel.Workbook,而excel是Microsoft.Office.Interop.Excel.Application的一个实例。
如果是这种情况,您的代码将无法工作,因为Workbook是一个接口,而接口没有构造函数。你必须要求excel应用程序为你创建工作簿,在你的情况下你只需要写:
Workbook wb = excel.Workbooks.Open(currentPath);
以类似的方式,如果要创建新的空工作簿,则应编写:
Workbook wb = excel.Workbooks.Add(System.Reflection.Missing.Value);
答案 1 :(得分:2)
我不知道你的错误,但我做了类似的事情:
_app = new Excel.Application();
Excel.Workbook wb = _app.Workbooks.Open(currentPath);
答案 2 :(得分:1)
右键单击解决方案并将Platform更改为x86 重建你的解决方案...... 祝你好运!