Tengo una aplicación simple C# que tiene que escribir algunos valores en un rango de Excel de una hoja de cálculo específica. Creo una instancia de la aplicación de Excel si no existe, pero si existe quiero configurarlo y tomar una instancia si se utiliza en mi código.Obtenga una instancia de la aplicación Excel con C# por Handle
que utiliza este código para crear una nueva aplicación:
Microsoft.Office.Interop.Excel app =
new Microsoft.Office.Interop.Excel.Application();
app.Visible = true;
para obtener el identificador de ventana de Excel activo i utilizar esta API
[DllImportAttribute("User32.dll")]
private static extern int FindWindow(String ClassName, String WindowName);
¿Cómo puedo obtener una instancia de la aplicación Excel un mango?
int hWnd = FindWindow(null, "Microsoft Excel - MySheet.xlsx");
Microsoft.Office.Interop.Excel app = ....(hWnd)
Para mí, 'instancia = new Excel.ApplicationClass();' no funcionó. Tuve que usar 'instance = new Excel.Application();'. –
@DavidMurdoch esto es el resultado de un [cambio en VS2010 para incrustar tipos de interoperabilidad] (http://blogs.msdn.com/b/mshneer/archive/2009/12/07/interop-type-xxx-cannot-be -embedded-use-the-applicable-interface-instead.aspx). Cambiar a 'Application()' sobre 'ApplicationClass()' es una solución, obtienes el mismo resultado (¡aunque parezca que estás instanciando una interfaz!). – James