2009-12-17 12 views
24

Quiero llamar a Excel Sheet desde C# 4.0 (VS 2010 Express Edition).C# -Excel interoperability

Cuando i declaro,

Microsoft.Office.Interop.Excel.ApplicationClass excel = 
    new Microsoft.Office.Interop.Excel.ApplicationClass(); 

excel.Visible = true; 

recibo error como

tipo Interop 'Microsoft.Office.Interop.Excel.ApplicationClass' no puede ser incrustado. Use la interfaz aplicable en su lugar.

¿Qué es el alma?

Respuesta

35

Here es una publicación de blog que se ocupa de eso. Parece que necesita cambiar

Microsoft.Office.Interop.Excel.ApplicationClass(); 

a

Microsoft.Office.Interop.Excel.Application(); 
1

Es necesario declarar la variable como Microsoft.Office.Interop.Excel.Application, pero una instancia como Microsoft.Office.Interop.Excel.ApplicationClass.

1
Excel.Application = new Excel.ApplicationClass(); 

Nota del líder Excel.Application, no Excel.ApplicationClass.

También tenga en cuenta, esto es directamente del MSDN page for ApplicationClass.

5

La respuesta para mí fue marcar los tipos de Incrustar incrustado como falso. Ver this pregunta.

3

resuelto:

Excel.ApplicationClass deriva de Excel.Application interfaz y uno puede incluso crear una instancia de Excel usando Excel.Application interfaz. Reescribiendo el código de la siguiente manera produce mismos resultados:

Excel.Application xlapp = new Excel.Application(); 
0

para MS Office 2016 es necesario utilizar la siguiente sin dramas

Excel.Application oExcel = new Excel.Application();