C# 无法创建抽象类的实例

C# 无法创建抽象类的实例,c#,.net,asp.net,vb.net,vsto,C#,.net,Asp.net,Vb.net,Vsto,我正在尝试编译以下代码,但得到错误: 无法创建抽象类的实例。请帮忙 m_objExcel = new Excel.Application(); m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks; m_objBook = (Excel._Workbook)(m_objBooks.Add(m_objOpt)); m_objSheets = (Excel.Sheets)m_objBook.Worksheets; m_objSheet = (Excel

我正在尝试编译以下代码,但得到错误:

无法创建抽象类的实例。请帮忙

m_objExcel = new Excel.Application();
m_objBooks = (Excel.Workbooks)m_objExcel.Workbooks;
m_objBook = (Excel._Workbook)(m_objBooks.Add(m_objOpt));
m_objSheets = (Excel.Sheets)m_objBook.Worksheets;
m_objSheet = (Excel._Worksheet)(m_objSheets.get_Item(1));

// Create an array for the headers and add it to cells A1:C1.
object[] objHeaders = {"Order ID", "Amount", "Tax"};
m_objRange = m_objSheet.get_Range("A1", "C1");
m_objRange.Value = objHeaders;
m_objFont = m_objRange.Font;
m_objFont.Bold=true;

// Create an array with 3 columns and 100 rows and add it to
// the worksheet starting at cell A2.
object[,] objData = new Object[100,3];
Random rdm = new Random((int)DateTime.Now.Ticks);
double nOrderAmt, nTax;
for(int r=0;r<100;r++)
{
    objData[r,0] = "ORD" + r.ToString("0000");
    nOrderAmt = rdm.Next(1000);
    objData[r,1] = nOrderAmt.ToString("c");
    nTax = nOrderAmt*0.07;
    objData[r,2] = nTax.ToString("c");
}
m_objRange = m_objSheet.get_Range("A2", m_objOpt);
m_objRange = m_objRange.get_Resize(100,3);
m_objRange.Value = objData;

// Save the Workbook and quit Excel.
m_objBook.SaveAs(m_strSampleFolder + "Book2.xls", m_objOpt, m_objOpt,
    m_objOpt, m_objOpt, m_objOpt, Excel.XlSaveAsAccessMode.xlNoChange,
    m_objOpt, m_objOpt, m_objOpt, m_objOpt);
m_objBook.Close(false, m_objOpt, m_objOpt);
m_objExcel.Quit();

我建议你确定它断开的地方

类不能直接创建,而是需要通过派生类创建实例,这就是为什么会出现异常

如果不使用try/catch包装代码或打开公共语言运行时异常,VS2008中的默认快捷方式是Ctrl+E,则应该能够找到导致问题的行

我想这甚至可能是你的第一句话,通常你会用这样的话:

new ApplicationClass();

抽象类不能用“new”实例化。看看这个错误,看看它的点在哪条线上。然后检查代码,看看它在做什么。如果你不能确定答案,就写这行


只需尝试Excel.Application而不是新的Excel.Application

m_objExcel=new Excel.Application;你需要确认这就是问题所在。如果这一行是问题所在,那么它可以简单到m_objExcel=newapplicationclass;