对于当前代码:
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
我想要的只是一个用于添加工作表的预定义工作簿
最佳答案
我想在您的代码中,Workbook 的全名是 Microsoft.Office.Interop.Excel.Workbook,而 excel 是 Microsoft.Office.Interop.Excel.Application 的一个实例。
如果是这种情况,您的代码将无法工作,因为 Workbook 是一个接口(interface),而接口(interface)没有构造函数。您必须要求 excel 应用程序为您创建工作簿,在您的情况下,您只需编写:
Workbook wb = excel.Workbooks.Open(currentPath);
以类似的方式,如果你想创建一个新的空工作簿,你应该这样写:
Workbook wb = excel.Workbooks.Add(System.Reflection.Missing.Value);
关于c# - Excel 工作簿输入的奇怪错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10896947/